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) => (
- {
- setGameMode(mode);
- gameManager.changeGameMode(mode);
- e.currentTarget.blur(); // Remove focus from button
- }}
- className={`px-3 py-1 rounded capitalize font-medium transition ${
- gameMode === mode
- ? 'bg-blue-600 text-white'
- : 'bg-muted text-foreground hover:bg-blue-500 hover:text-white'
- }`}
- >
- {mode}
-
+ {
+ setGameMode(mode);
+ gameManager.changeGameMode(mode);
+ e.currentTarget.blur(); // Remove focus from button
+ }}
+ className={`px-3 py-1 rounded capitalize font-medium transition ${gameMode === mode
+ ? 'bg-blue-600 text-white'
+ : 'bg-muted text-foreground hover:bg-blue-500 hover:text-white'
+ }`}
+ >
+ {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