From 9baad872e60fcd1ee43867c230674b01c1570f48 Mon Sep 17 00:00:00 2001 From: banevading <96davibeck@csdecatur.net> Date: Sat, 10 Aug 2024 18:32:01 -0400 Subject: [PATCH 1/3] Implemented basic allinace functionality --- lib/API.ts | 2 +- pages/createTeam.tsx | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/lib/API.ts b/lib/API.ts index 4c6bb014..7a8d2523 100644 --- a/lib/API.ts +++ b/lib/API.ts @@ -216,7 +216,7 @@ export namespace API { let obj = await db.findObject(collection, query); if (!obj) { - obj = {}; + obj = false; } res.status(200).send(obj); diff --git a/pages/createTeam.tsx b/pages/createTeam.tsx index 97a84ce1..aedb19b7 100644 --- a/pages/createTeam.tsx +++ b/pages/createTeam.tsx @@ -22,6 +22,8 @@ export default function CreateTeam() { const [ftcAutoData, setFtcAutoData] = useState(); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); + const [allianceNumber,setAllianceNumber] = useState(); + const [allianceName, setAllianceName] = useState() const searchTeam = async () => { if (!teamNumber) { @@ -82,6 +84,45 @@ export default function CreateTeam() { win.location = `/${newTeam.slug}`; }; + async function createAlliance(league: League){ + console.log("Beginning Alliance Creation") + if (!session?.user) { + return; + } + + if(!allianceName) { + setError("Your alliance must have a name") + return + } + + if ( + await api.findTeamByNumberAndLeague(Number(allianceNumber), league) + ) { + console.log(allianceNumber) + console.log(league) + setError("This Team Already Exists"); + return; + } + + if (allianceNumber?.toString().length!=7){ + setError("Alliances must have a seven digit number") + return + } + console.log("Made part 2") + + + const newTeam = await api.createTeam( + allianceName, + allianceNumber!, + session.user._id, + "none", + league + ); + console.log("Created") + const win: Window = window; + win.location = `/${newTeam.slug}`; + } + useEffect(() => { searchTeam(); }, [teamNumber]); @@ -110,6 +151,25 @@ export default function CreateTeam() { setTeamNumber(e.target.value); }} > + { + setAllianceNumber(Number(e.target.value)); + }} + > + { + setAllianceName(e.target.value); + }} + > +
createAlliance(League.FRC)}>Create Alliance Test
{teamNumber && (
{loading ? ( @@ -120,6 +180,7 @@ export default function CreateTeam() {
createTeam(League.FRC)}>
+ } { ftcAutoData?.name &&
createTeam(League.FTC)}> From 0e7659efd2328f1c5d0d550c76877af834aa89be Mon Sep 17 00:00:00 2001 From: banevading <96davibeck@csdecatur.net> Date: Sat, 10 Aug 2024 18:44:52 -0400 Subject: [PATCH 2/3] Updated fresh vs stale error message clarity --- pages/createTeam.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pages/createTeam.tsx b/pages/createTeam.tsx index aedb19b7..eacfa4fe 100644 --- a/pages/createTeam.tsx +++ b/pages/createTeam.tsx @@ -23,7 +23,7 @@ export default function CreateTeam() { const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [allianceNumber,setAllianceNumber] = useState(); - const [allianceName, setAllianceName] = useState() + const [allianceName, setAllianceName] = useState(); const searchTeam = async () => { if (!teamNumber) { @@ -52,6 +52,7 @@ export default function CreateTeam() { }; const createTeam = async (league: League) => { + setError("") if (!autoData || !session?.user) { return; } @@ -85,15 +86,12 @@ export default function CreateTeam() { }; async function createAlliance(league: League){ + setError("") console.log("Beginning Alliance Creation") if (!session?.user) { return; } - if(!allianceName) { - setError("Your alliance must have a name") - return - } if ( await api.findTeamByNumberAndLeague(Number(allianceNumber), league) @@ -108,6 +106,11 @@ export default function CreateTeam() { setError("Alliances must have a seven digit number") return } + + if(!allianceName) { + setError("Your alliance must have a name") + return + } console.log("Made part 2") From 20edf8e749e9d65a8af546df0a2d7fea4af3967b Mon Sep 17 00:00:00 2001 From: banevading <96davibeck@csdecatur.net> Date: Sun, 11 Aug 2024 01:11:03 -0400 Subject: [PATCH 3/3] improved alliance creation ux --- pages/createTeam.tsx | 73 +++++++++++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/pages/createTeam.tsx b/pages/createTeam.tsx index eacfa4fe..1b18c856 100644 --- a/pages/createTeam.tsx +++ b/pages/createTeam.tsx @@ -24,6 +24,9 @@ export default function CreateTeam() { const [error, setError] = useState(""); const [allianceNumber,setAllianceNumber] = useState(); const [allianceName, setAllianceName] = useState(); + const [creatingTeam, setCreatingTeam] = useState(); + const [settingState, setSettingState] = useState(true) + const searchTeam = async () => { if (!teamNumber) { @@ -138,11 +141,27 @@ export default function CreateTeam() { mode="col" className="md:h-full items-center md:justify-center max-sm:py-10" > - + {settingState ? + +
+
{ + setSettingState(false) + setCreatingTeam(false) + }}>Create an Alliance
+
+
{ + setSettingState(false) + setCreatingTeam(true) + }}>Create a team
+
+ : + + creatingTeam?

Search our database with your teams number

{error}

+
setSettingState(true)}>Go Back
- { - setAllianceNumber(Number(e.target.value)); - }} - > - { - setAllianceName(e.target.value); - }} - > -
createAlliance(League.FRC)}>Create Alliance Test
{teamNumber && (
{loading ? ( @@ -194,7 +194,38 @@ export default function CreateTeam() { )}
)} -
+
+ + : + + +

+ Create your Scouting Alliance +

+

{error}

+
setSettingState(true)}>Go Back
+
+ { + setAllianceNumber(Number(e.target.value)); + }} + > + { + setAllianceName(e.target.value); + }} + > +
+
createAlliance(League.FRC)}>Create Alliance
+
} );