From 9e23d60ef18bc095f917c0c24f058bd308f5f25b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:33:12 -0500 Subject: [PATCH] fix: isolated session functions --- src/app/embeds/session/page.tsx | 3 +-- src/app/tools/session/page.tsx | 37 ++------------------------------- src/commands/stats.tsx | 2 -- src/stores/session.ts | 35 ++++++++++++++++++++++++++++++- 4 files changed, 37 insertions(+), 40 deletions(-) diff --git a/src/app/embeds/session/page.tsx b/src/app/embeds/session/page.tsx index b73fef64a..728f84710 100644 --- a/src/app/embeds/session/page.tsx +++ b/src/app/embeds/session/page.tsx @@ -14,11 +14,10 @@ import { import calculateWN8 from '../../../core/statistics/calculateWN8'; import { deltaTankStats } from '../../../core/statistics/deltaTankStats'; import getWN8Percentile from '../../../core/statistics/getWN8Percentile'; -import { useSession } from '../../../stores/session'; +import { resetSession, useSession } from '../../../stores/session'; import { IndividualTankStats, TanksStats } from '../../../types/tanksStats'; import { CustomColumnDisplay } from '../../tools/session/components/CustomColumn'; import { Menu } from '../../tools/session/components/Menu'; -import { resetSession } from '../../tools/session/page'; const REFRESH_RATE = 1 / 5; diff --git a/src/app/tools/session/page.tsx b/src/app/tools/session/page.tsx index e89c25a64..a6eb1e323 100644 --- a/src/app/tools/session/page.tsx +++ b/src/app/tools/session/page.tsx @@ -18,48 +18,15 @@ import { import { debounce } from 'lodash'; import { ChangeEvent, useEffect, useRef, useState } from 'react'; import PageWrapper from '../../../components/PageWrapper'; -import { REGION_NAMES, Region } from '../../../constants/regions'; -import { WARGAMING_APPLICATION_ID } from '../../../constants/wargamingApplicationID'; -import fetchBlitz from '../../../core/blitz/fetchWargaming'; +import { REGION_NAMES } from '../../../constants/regions'; import searchPlayersAcrossRegions, { AccountListWithServer, } from '../../../core/blitz/searchPlayersAcrossRegions'; -import { useSession } from '../../../stores/session'; -import { NormalizedTankStats, TanksStats } from '../../../types/tanksStats'; +import { resetSession, setSession, useSession } from '../../../stores/session'; import SessionPage from '../../embeds/session/page'; import { Menu } from './components/Menu'; import * as styles from './page.css'; -export async function setSession(region: Region, id: number, nickname: string) { - const rawTankStats = ( - await fetchBlitz( - `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, - time: Date.now(), - }); -} - -export function resetSession() { - const session = useSession.getState(); - if (!session.isTracking) return; - setSession(session.region, session.id, session.nickname); -} - export default function Page() { const input = useRef(null); const [searchResults, setSearchResults] = useState< diff --git a/src/commands/stats.tsx b/src/commands/stats.tsx index f95a8aa30..3f2e8cf60 100644 --- a/src/commands/stats.tsx +++ b/src/commands/stats.tsx @@ -41,8 +41,6 @@ async function render( const { stats, supplementary } = await filterStats(diffedTankStats, filters); const filterDescriptions = await filtersToDescription(filters); - console.log(clan); - return ( ( + `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, + time: Date.now(), + }); +} + +export function resetSession() { + const session = useSession.getState(); + if (!session.isTracking) return; + setSession(session.region, session.id, session.nickname); +} + export const useSession = create()( devtools( persist(