feat(phase1.1): create hook module structure with proper exports

- Create new hook modules: useBoard, useCursor, useGameStatus
- Move/copy hook implementations to their own directories
- Create index.ts files for clean module exports
- Update all imports to use new module locations
- Rename useSnake -> useCursor for Unified API alignment
- Rename useRenderer -> useBoard for clarity
- Update main src/index.ts to export from all hook modules
- All TypeScript builds successfully
- Example app remains functional
This commit is contained in:
2025-10-30 22:16:13 +00:00
parent 2b3a55df37
commit dcaa93ea08
9 changed files with 409 additions and 9 deletions
+8 -8
View File
@@ -1,21 +1,21 @@
import { useEffect } from "react";
import { useRenderer } from "./useRenderer";
import { useSnake } from "./useSnake";
import { useBoard } from "../useBoard";
import { useCursor } from "../useCursor";
import { useFood } from "./useFood";
import { useGameStatus } from "./useGameStatus";
import { useGameStatus } from "../useGameStatus";
import { useKeyBindings, type UseKeyBindingsType } from "./useKeyBindings";
import { useScore } from "../useScore";
export function useGame(cols: number, rows: number, platformHook?: unknown) {
const rendererManager = useRenderer();
const { containerRef, renderBoard } = rendererManager;
const boardManager = useBoard();
const { containerRef, renderBoard } = boardManager;
const snakeManager = useSnake(cols, rows, rendererManager);
const snakeManager = useCursor(cols, rows, boardManager);
const { changeDirection } = snakeManager;
const foodManager = useFood(cols, rows, rendererManager);
const foodManager = useFood(cols, rows, boardManager);
const gameManager = useGameStatus(rendererManager, snakeManager, foodManager);
const gameManager = useGameStatus(boardManager, snakeManager, foodManager);
const { gameStatus, startGame, stopGame, togglePause, score, level } = gameManager;
useEffect(() => {