fix: cursor not showing on game start

Issue: When game starts, renderBoard() rebuilds DOM which removes cursor class
Solution: Add gameStatus as dependency to useCursorRender
- Now re-applies cursor after board renders
- Only applies cursor when gameStatus === 'started'

This ensures cursor is visible immediately when game starts at position (0,0).
This commit is contained in:
2025-10-22 18:56:44 +01:00
parent b635c21042
commit 6d12a01f21
2 changed files with 10 additions and 3 deletions
+9 -2
View File
@@ -1,9 +1,16 @@
import { useEffect } from 'react';
import type { Coord } from './types';
import type { BoardManager } from '../useBoard/types';
import type { GameStatus } from '../useGameStatus/types';
export function useCursorRender(containerRef: BoardManager['containerRef'], position: Coord) {
export function useCursorRender(
containerRef: BoardManager['containerRef'],
position: Coord,
gameStatus: GameStatus
) {
useEffect(() => {
if (gameStatus !== 'started') return;
console.log('🎯 Cursor position:', position);
const container = containerRef.current;
@@ -29,5 +36,5 @@ export function useCursorRender(containerRef: BoardManager['containerRef'], posi
} else {
console.log('❌ Target cell not found');
}
}, [position, containerRef]);
}, [position, containerRef, gameStatus]);
}
+1 -1
View File
@@ -16,7 +16,7 @@ export function useGame(options: GameOptions = {}, platformHook?: unknown): Game
const cursor = useCursor(gameStatusManager);
const cursorPosition = cursor.position();
useCursorRender(containerRef, cursorPosition);
useCursorRender(containerRef, cursorPosition, gameStatus);
const [keyLog, setKeyLog] = useState<{ key: string; timestamp: number }[]>([]);