feat: added reset and search click functionality

This commit is contained in:
TrèsAbhi committed 2023-09-28 10:23:46 -05:00
1 parent 1feae49490
commit 823465fde9
1 file changed
+30 -28
+30 -28
View File
@@ -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<TanksStats>(
`https://api.wotblitz.${region}/wotb/tanks/stats/?application_id=${WARGAMING_APPLICATION_ID}&account_id=${id}`,
)
)[id];
const tankStats = rawTankStats.reduce<NormalizedTankStats>(
(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}&region=${region}`,
)
.then(
(response) =>
response.json() as Promise<NormalizedTankStats>,
)
.then((tankStats) =>
useSession.setState({
isTracking: true,
id,
region,
nickname,
tankStats,
}),
);
setSession(region, id, nickname);
}}
>
<span
@@ -251,14 +260,7 @@ export default function Page() {
if (!session.isTracking) return;
const { id, region } = session;
const tankStats = await fetch(
`/api/stats/normalized/tanks?id=${id}&region=${region}`,
).then(
(response) => response.json() as Promise<NormalizedTankStats>,
);
useSession.setState({ tankStats });
setSession(session.region, session.id, session.nickname);
}}
>
<ReloadIcon /> Reset