diff --git a/example/src/App.tsx b/example/src/App.tsx index a9383e7..c3e04ee 100755 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, useEffect } from "react"; import { useGame, type GameMode } from "@vimazing/typing-chud"; import "@vimazing/typing-chud/game.css"; import { useKeyBindings } from "./useKeyBindings"; @@ -8,6 +8,13 @@ function App() { const gameManager = useGame({ initialGameMode: gameMode }, useKeyBindings); const { containerRef, gameStatus, scoreManager } = gameManager; + useEffect(() => { + if (scoreManager.score === 10 && gameMode === "letters") { + setGameMode("words"); + gameManager.changeGameMode("words"); + } + }, [scoreManager.score, gameMode, gameManager]); + const formatTime = (ms: number) => { const seconds = Math.floor(ms / 1000); const minutes = Math.floor(seconds / 60); @@ -21,21 +28,20 @@ function App() {

Typing Chud

{(['letters', 'words', 'sentences', 'paragraphs'] as const).map((mode) => ( - + ))}
diff --git a/src/useGame/useGame.ts b/src/useGame/useGame.ts index 7fc03fc..30d2584 100755 --- a/src/useGame/useGame.ts +++ b/src/useGame/useGame.ts @@ -42,10 +42,7 @@ export function useGame( const changeGameMode = (mode: GameMode) => { setGameModeState(mode); - // Only quit if the game is actively running - if (gameStatusManager.gameStatus === 'started') { - gameStatusManager.quitGame(); - } + // Don't quit - just switch modes and let game continue }; // Set the game loop callback