mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-25 03:29:51 +01:00
feat: added reset and search click functionality
This commit is contained in:
1 parent
1feae49490
commit
823465fde9
1 file changed
+30
-28
@@ -42,7 +42,8 @@ export default function Page() {
|
|||||||
if (event.target.value) {
|
if (event.target.value) {
|
||||||
setSearchResults(await listPlayers(event.target.value));
|
setSearchResults(await listPlayers(event.target.value));
|
||||||
} else {
|
} else {
|
||||||
// TODO
|
setSearchResults(undefined);
|
||||||
|
setShowSearchResults(false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
500,
|
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(() => {
|
useEffect(() => {
|
||||||
recalculateDiff();
|
recalculateDiff();
|
||||||
@@ -201,24 +227,7 @@ export default function Page() {
|
|||||||
className={styles.searchButton}
|
className={styles.searchButton}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setShowSearchResults(false);
|
setShowSearchResults(false);
|
||||||
input.current!.value = nickname;
|
setSession(region, id, nickname);
|
||||||
|
|
||||||
fetch(
|
|
||||||
`/api/stats/normalized/tanks?id=${id}®ion=${region}`,
|
|
||||||
)
|
|
||||||
.then(
|
|
||||||
(response) =>
|
|
||||||
response.json() as Promise<NormalizedTankStats>,
|
|
||||||
)
|
|
||||||
.then((tankStats) =>
|
|
||||||
useSession.setState({
|
|
||||||
isTracking: true,
|
|
||||||
id,
|
|
||||||
region,
|
|
||||||
nickname,
|
|
||||||
tankStats,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
@@ -251,14 +260,7 @@ export default function Page() {
|
|||||||
|
|
||||||
if (!session.isTracking) return;
|
if (!session.isTracking) return;
|
||||||
|
|
||||||
const { id, region } = session;
|
setSession(session.region, session.id, session.nickname);
|
||||||
const tankStats = await fetch(
|
|
||||||
`/api/stats/normalized/tanks?id=${id}®ion=${region}`,
|
|
||||||
).then(
|
|
||||||
(response) => response.json() as Promise<NormalizedTankStats>,
|
|
||||||
);
|
|
||||||
|
|
||||||
useSession.setState({ tankStats });
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ReloadIcon /> Reset
|
<ReloadIcon /> Reset
|
||||||
|
|||||||
Reference in new issue
Block a user