mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-11-13 04:36:12 +01:00
fix guesser hydration and auto animatin play
This commit is contained in:
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;
|
||||||
|
|||||||
Reference in new issue
Block a user