From 11e75e48ce0ab652b7fe73400ca7c3b1bb36378a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:47:02 -0500 Subject: [PATCH] feat: instant model loading --- .../[id]/components/Model/HeroSection.tsx | 54 +++++++++++++------ .../components/Model/TankSandboxLoader.tsx | 15 +++--- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx index 38fcea48a..a9314299f 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx @@ -1,7 +1,7 @@ import { ChevronLeftIcon, MixIcon } from '@radix-ui/react-icons'; import { Box, Button, Flex, Heading, Text } from '@radix-ui/themes'; import Link from 'next/link'; -import { Suspense } from 'react'; +import { Suspense, useEffect, useState } from 'react'; import { classIcons } from '../../../../../../components/ClassIcon'; import { TIER_ROMAN_NUMERALS } from '../../../../../../core/blitzkit/tankDefinitions/constants'; import { useFullScreen } from '../../../../../../hooks/useFullScreen'; @@ -20,6 +20,11 @@ export function HeroSection({ id }: { id: number }) { : [protagonist.id, antagonist.id]; const isFullScreen = useFullScreen(); const Icon = classIcons[protagonist.class]; + const [dummyLoader, setDummyLoader] = useState(true); + + useEffect(() => { + setDummyLoader(false); + }, []); return ( - - {' '} - {protagonist.name} - + + + {' '} + + + {protagonist.name} + + Tier {TIER_ROMAN_NUMERALS[protagonist.tier]}{' '} @@ -73,7 +82,6 @@ export function HeroSection({ id }: { id: number }) { }{' '} {strings.common.tank_class_short[protagonist.class]} -