fix: preserve gameStatus when switching game modes

- Stop passing gameMode as dependency to useGameStatus initialization
- Create useGameStatus once with default 'letters' mode
- Add setGameMode method to update mode via ref without recreating hook
- Update gameMode via effect in useGame when it changes
- Fixes issue where switching to letters mode and starting game would reset to waiting
This commit is contained in:
2025-11-03 23:41:12 +00:00
parent 662557c933
commit 308eafac62
3 changed files with 12 additions and 1 deletions
+5
View File
@@ -165,6 +165,10 @@ export function useGameStatus(onGameLoopTick?: (deltaTime: number, letters: Fall
onGameLoopTickRef.current = callback;
}, []);
const setGameMode = useCallback((mode: GameMode) => {
gameModeRef.current = mode;
}, []);
const addCorrect = useCallback(() => {
setScore(prev => prev + 1);
setCorrect(prev => prev + 1);
@@ -189,6 +193,7 @@ export function useGameStatus(onGameLoopTick?: (deltaTime: number, letters: Fall
shipExplosionTime,
updatePlayerX,
setGameLoopCallback,
setGameMode,
addCorrect,
addMissed,
addDeath,