feat: optimize awaitables

This commit is contained in:
tresabhi committed 2024-11-29 13:20:27 -06:00
1 parent 80fca2e53a
commit 74e85f82f1
54 files changed
+259 -190

No files matched your search

@@ -1,11 +1,7 @@
import {
asset,
fetchAverageDefinitions,
fetchTankDefinitions,
formatCompact,
TIER_ROMAN_NUMERALS,
} from '@blitzkit/core';
import { asset, formatCompact, TIER_ROMAN_NUMERALS } from '@blitzkit/core';
import { Box, Flex, Link, Skeleton, Text } from '@radix-ui/themes';
import { awaitableAverageDefinitions } from '../../../../core/awaitables/averageDefinitions';
import { awaitableTankDefinitions } from '../../../../core/awaitables/tankDefinitions';
import { TankopediaEphemeral } from '../../../../stores/tankopediaEphemeral';
import type { MaybeSkeletonComponentProps } from '../../../../types/maybeSkeletonComponentProps';
@@ -15,8 +11,10 @@ type NodeProps = MaybeSkeletonComponentProps & {
highlight?: boolean;
};
const tankDefinitions = await fetchTankDefinitions();
const averageDefinitions = await fetchAverageDefinitions();
const [tankDefinitions, averageDefinitions] = await Promise.all([
awaitableTankDefinitions,
awaitableAverageDefinitions,
]);
export function Node({ id, highlight, nextIds, skeleton }: NodeProps) {
const xpMultiplier = TankopediaEphemeral.use((state) => state.xpMultiplier);
@@ -1,7 +1,8 @@
import { asset, fetchTankDefinitions, imgur, TankType } from '@blitzkit/core';
import { asset, imgur, TankType } from '@blitzkit/core';
import { CaretLeftIcon, CaretRightIcon, PlusIcon } from '@radix-ui/react-icons';
import { Flex, Heading, IconButton, ScrollArea, Text } from '@radix-ui/themes';
import { Fragment, useEffect, useMemo, useRef, useState } from 'react';
import { awaitableTankDefinitions } from '../../../core/awaitables/tankDefinitions';
import { Duel } from '../../../stores/duel';
import { TankopediaEphemeral } from '../../../stores/tankopediaEphemeral';
import type { MaybeSkeletonComponentProps } from '../../../types/maybeSkeletonComponentProps';
@@ -10,7 +11,7 @@ import { Node } from './components/Node';
type Line = number[];
const tankDefinitions = await fetchTankDefinitions();
const tankDefinitions = await awaitableTankDefinitions;
export const XP_MULTIPLIERS = [1, 2, 3, 4, 5, 10];