feat: implement digit entry in edit mode (Phase 40.3.3)

- Add setCell method to useBoard to update board state
- Handle digit keys 1-9 in edit mode in useCursor
- Move boardRendered counter to useBoard for proper cursor re-rendering
- Fix golden glow disappearing after digit entry
- Digits display with .user-entered class via renderer
This commit is contained in:
2025-10-22 19:49:12 +01:00
parent 6a4b72075c
commit bc8eeaf400
5 changed files with 151 additions and 9 deletions
+2 -6
View File
@@ -8,15 +8,14 @@ import { useCursorRender } from './useCursor/useCursorRender';
export function useGame(options: GameOptions = {}, platformHook?: unknown): GameManager {
const { difficulty = 'easy' } = options;
const board = useBoard();
const { containerRef, renderBoard, generateBoard } = board;
const { containerRef, renderBoard, generateBoard, boardRendered } = board;
const gameStatusManager = useGameStatus();
const { gameStatus } = gameStatusManager;
const [keyLog, setKeyLog] = useState<{ key: string; timestamp: number }[]>([]);
const [boardRendered, setBoardRendered] = useState(0);
const cursor = useCursor(gameStatusManager, containerRef);
const cursor = useCursor(gameStatusManager, containerRef, board);
const cursorPosition = cursor.position();
const cursorMode = cursor.mode();
@@ -24,17 +23,14 @@ export function useGame(options: GameOptions = {}, platformHook?: unknown): Game
useEffect(() => {
renderBoard();
setBoardRendered(prev => prev + 1);
}, []);
useEffect(() => {
if (gameStatus === 'started') {
generateBoard(difficulty);
renderBoard();
setBoardRendered(prev => prev + 1);
} else if (gameStatus === 'waiting') {
renderBoard();
setBoardRendered(prev => prev + 1);
}
}, [gameStatus, difficulty]);