feat: clan cache

This commit is contained in:
TrèsAbhi committed 2023-10-31 15:31:03 -05:00
1 parent 8fbd1acf4a
commit 87e23673fb
1 file changed
+24 -6
+24 -6
View File
@@ -18,6 +18,7 @@ import * as Leaderboard from '../../../components/Leaderboard';
import PageWrapper from '../../../components/PageWrapper'; import PageWrapper from '../../../components/PageWrapper';
import { REGIONS, REGION_NAMES, Region } from '../../../constants/regions'; import { REGIONS, REGION_NAMES, Region } from '../../../constants/regions';
import { getAccountInfo } from '../../../core/blitz/getAccountInfo'; import { getAccountInfo } from '../../../core/blitz/getAccountInfo';
import { getClanAccountInfo } from '../../../core/blitz/getClanAccountInfo';
import getRatingsInfo from '../../../core/blitz/getRatingsInfo'; import getRatingsInfo from '../../../core/blitz/getRatingsInfo';
import getArchivedRatingsInfoAPI from '../../../core/blitzkrieg/getArchivedRatingsInfoAPI'; import getArchivedRatingsInfoAPI from '../../../core/blitzkrieg/getArchivedRatingsInfoAPI';
import { getArchivedRatingsLeaderboardAPI } from '../../../core/blitzkrieg/getArchivedRatingsLeaderboardAPI'; import { getArchivedRatingsLeaderboardAPI } from '../../../core/blitzkrieg/getArchivedRatingsLeaderboardAPI';
@@ -32,14 +33,17 @@ const useUsernameCache = create<Record<Region, Record<number, string>>>(() => ({
com: {}, com: {},
eu: {}, eu: {},
})); }));
const clanCache: Record<Region, Record<number, string>> = { const useClanCache = create<Record<Region, Record<number, string | undefined>>>(
com: {}, () => ({
eu: {}, asia: {},
asia: {}, com: {},
}; eu: {},
}),
);
export default function Page() { export default function Page() {
const usernameCache = useUsernameCache(); const usernameCache = useUsernameCache();
const clanCache = useClanCache();
const [region, setRegion] = useState<Region>('com'); const [region, setRegion] = useState<Region>('com');
// null being the latest season // null being the latest season
const [season, setSeason] = useState<null | number>(null); const [season, setSeason] = useState<null | number>(null);
@@ -90,6 +94,19 @@ export default function Page() {
); );
}); });
}); });
getClanAccountInfo(region, ids, ['clan']).then((data) => {
data.map((player) => {
useClanCache.setState(
produce((draft) => {
if (player) {
draft[region][player.account_id] =
player.clan?.tag ?? undefined;
}
}),
);
});
});
} }
} }
@@ -151,7 +168,7 @@ export default function Page() {
</Select.Root> </Select.Root>
</Flex> </Flex>
<Flex justify="between"> <Flex justify="between" wrap="wrap" gap="2">
<Flex gap="2"> <Flex gap="2">
<Popover.Root> <Popover.Root>
<Popover.Trigger> <Popover.Trigger>
@@ -278,6 +295,7 @@ export default function Page() {
} }
position={page * ROWS_PER_PAGE + index + 1} position={page * ROWS_PER_PAGE + index + 1}
score={player.score} score={player.score}
clan={clanCache[region][player.id]}
key={player.id} key={player.id}
/> />
))} ))}