diff --git a/components/Game.tsx b/components/Game.tsx index 48c00ea..466e88a 100644 --- a/components/Game.tsx +++ b/components/Game.tsx @@ -30,6 +30,7 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max const [hasLost, setHasLost] = useState(false); const [shareText, setShareText] = useState('Share Result'); const [lastAction, setLastAction] = useState<'GUESS' | 'SKIP' | null>(null); + const [isProcessingGuess, setIsProcessingGuess] = useState(false); useEffect(() => { if (gameState && dailyPuzzle) { @@ -53,6 +54,9 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max if (!gameState) return
Loading state...
; const handleGuess = (song: any) => { + if (isProcessingGuess) return; // Prevent multiple guesses + + setIsProcessingGuess(true); setLastAction('GUESS'); if (song.id === dailyPuzzle.songId) { addGuess(song.title, true); @@ -66,6 +70,8 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max sendGotifyNotification(maxAttempts, 'lost', dailyPuzzle.id, genre); } } + // Reset after a short delay to allow UI update + setTimeout(() => setIsProcessingGuess(false), 500); }; const handleSkip = () => { @@ -175,7 +181,7 @@ export default function Game({ dailyPuzzle, genre = null, isSpecial = false, max {!hasWon && !hasLost && ( <> - + {gameState.guesses.length < 6 ? (