From 823465fde9a888f70e047d2249947c8fdd07d640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 28 Sep 2023 10:23:46 -0500 Subject: [PATCH] feat: added reset and search click functionality --- src/app/tools/session/page.tsx | 58 ++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/src/app/tools/session/page.tsx b/src/app/tools/session/page.tsx index 80bb32579..7c94547c8 100644 --- a/src/app/tools/session/page.tsx +++ b/src/app/tools/session/page.tsx @@ -42,7 +42,8 @@ export default function Page() { if (event.target.value) { setSearchResults(await listPlayers(event.target.value)); } else { - // TODO + setSearchResults(undefined); + setShowSearchResults(false); } }, 500, @@ -125,7 +126,32 @@ export default function Page() { }); } } - async function setSession(region: Region, id: number, nickname: string) {} + async function setSession(region: Region, id: number, nickname: string) { + input.current!.value = nickname; + + const rawTankStats = ( + await getWargamingResponse( + `https://api.wotblitz.${region}/wotb/tanks/stats/?application_id=${WARGAMING_APPLICATION_ID}&account_id=${id}`, + ) + )[id]; + const tankStats = rawTankStats.reduce( + (accumulator, tank) => ({ + ...accumulator, + [tank.tank_id]: tank, + }), + {}, + ); + + useSession.setState({ + isTracking: true, + id, + region, + nickname, + tankStats, + }); + + recalculateDiff(); + } useEffect(() => { recalculateDiff(); @@ -201,24 +227,7 @@ export default function Page() { className={styles.searchButton} onClick={() => { setShowSearchResults(false); - input.current!.value = nickname; - - fetch( - `/api/stats/normalized/tanks?id=${id}®ion=${region}`, - ) - .then( - (response) => - response.json() as Promise, - ) - .then((tankStats) => - useSession.setState({ - isTracking: true, - id, - region, - nickname, - tankStats, - }), - ); + setSession(region, id, nickname); }} > response.json() as Promise, - ); - - useSession.setState({ tankStats }); + setSession(session.region, session.id, session.nickname); }} > Reset