File size: 2,714 Bytes
8725cc4 5cd06ed 6864389 0ce34cb 6864389 0ce34cb 8725cc4 5835ecd 0ce34cb 444233f 8725cc4 5835ecd 0ce34cb 444233f 8725cc4 47fea40 831f7e7 5cd06ed 6864389 47fea40 8725cc4 5835ecd 8725cc4 6864389 5cd06ed 6864389 5cd06ed 6864389 81e6964 6864389 47fea40 6864389 8725cc4 831f7e7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
import { motion } from "framer-motion";
import { useState, useEffect } from "react";
import { useTranslation } from "@/hooks/useTranslation";
import { Button } from "@/components/ui/button";
import {
Dialog,
DialogContent,
DialogTrigger,
} from "@/components/ui/dialog";
import { RoundHeader } from "./sentence-builder/RoundHeader";
import { WordDisplay } from "./sentence-builder/WordDisplay";
import { GuessDescription } from "./guess-display/GuessDescription";
import { GuessResult } from "./guess-display/GuessResult";
import { ActionButtons } from "./guess-display/ActionButtons";
import { HighScoreBoard } from "@/components/HighScoreBoard";
interface GuessDisplayProps {
sentence: string[];
aiGuess: string;
currentWord: string;
onNextRound: () => void;
onPlayAgain: () => void;
onBack?: () => void;
currentScore: number;
avgWordsPerRound: number;
sessionId: string;
}
export const GuessDisplay = ({
sentence,
aiGuess,
currentWord,
onNextRound,
onPlayAgain,
onBack,
currentScore,
avgWordsPerRound,
sessionId,
}: GuessDisplayProps) => {
const [showConfirmDialog, setShowConfirmDialog] = useState(false);
const [hasSubmittedScore, setHasSubmittedScore] = useState(false);
const t = useTranslation();
console.log("GuessDisplay - Rendering with showConfirmDialog:", showConfirmDialog);
const handleSetShowConfirmDialog = (show: boolean) => {
console.log("GuessDisplay - Setting showConfirmDialog to:", show);
setShowConfirmDialog(show);
};
useEffect(() => {
console.log("GuessDisplay - showConfirmDialog changed to:", showConfirmDialog);
}, [showConfirmDialog]);
const isGuessCorrect = () => aiGuess.toLowerCase() === currentWord.toLowerCase();
const handleScoreSubmitted = () => {
console.log('Score submitted, updating state');
setHasSubmittedScore(true);
};
return (
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
className="text-center relative space-y-6"
>
<RoundHeader
successfulRounds={currentScore}
onBack={onBack}
showConfirmDialog={showConfirmDialog}
setShowConfirmDialog={handleSetShowConfirmDialog}
/>
<WordDisplay currentWord={currentWord} />
<GuessDescription sentence={sentence} aiGuess={aiGuess} />
<GuessResult aiGuess={aiGuess} isCorrect={isGuessCorrect()} />
<ActionButtons
isCorrect={isGuessCorrect()}
onNextRound={onNextRound}
onPlayAgain={onPlayAgain}
currentScore={currentScore}
avgWordsPerRound={avgWordsPerRound}
sessionId={sessionId}
onScoreSubmitted={handleScoreSubmitted}
/>
</motion.div>
);
}; |