fix guesser hydration and auto animatin play

This commit is contained in:
tresabhi committed 2026-11-12 16:50:49 -06:00
1 parent 1ae06bc685
commit 287aba853f
2 files changed
+10 -19

No files matched your search

@@ -76,7 +76,6 @@ export function Guesser() {
const [results, setResults] = useState<TankDefinition[] | null>(null); const [results, setResults] = useState<TankDefinition[] | null>(null);
const [selected, setSelected] = useState<TankDefinition | null>(null); const [selected, setSelected] = useState<TankDefinition | null>(null);
const tiers = Guess.use((state) => state.tiers); const tiers = Guess.use((state) => state.tiers);
const status = useRef<HTMLSpanElement>(null);
const allTiersSelected = tiers.length === TIERS.length; const allTiersSelected = tiers.length === TIERS.length;
const requestSearch = useCallback(() => { const requestSearch = useCallback(() => {
@@ -105,22 +104,6 @@ export function Guesser() {
if (guessState !== GuessState.NotGuessed) setSelected(null); if (guessState !== GuessState.NotGuessed) setSelected(null);
}, [guessState]); }, [guessState]);
useEffect(() => {
const interval = setInterval(() => {
if (!status.current) return;
status.current.innerText = allTiersSelected
? literals(strings.guesser.stats, {
correct: correctGuesses,
total: totalGuesses,
streak: streak,
})
: strings.guesser.stats_untracked;
}, 1000 / 200);
return () => clearInterval(interval);
}, [correctGuesses, totalGuesses, streak, allTiersSelected]);
return ( return (
<div className={styles.guesser}> <div className={styles.guesser}>
<div className={styles.results}> <div className={styles.results}>
@@ -167,7 +150,15 @@ export function Guesser() {
)} )}
</div> </div>
<Text lowContrast ref={status} /> <Text lowContrast>
{allTiersSelected
? literals(strings.guesser.stats, {
correct: correctGuesses,
total: totalGuesses,
streak,
})
: strings.guesser.stats_untracked}
</Text>
<div className={styles.controls}> <div className={styles.controls}>
<DropdownMenu.Root modal={false}> <DropdownMenu.Root modal={false}>
@@ -6,7 +6,7 @@ export function useSkinAnimation(skins: Skin[]) {
const animate = Tankopedia.use((state) => state.animate); const animate = Tankopedia.use((state) => state.animate);
useFrame((_, delta) => { useFrame((_, delta) => {
if (animate) return; if (!animate) return;
for (const { mixer } of skins) { for (const { mixer } of skins) {
if (!mixer) continue; if (!mixer) continue;