fix winning modal

This commit is contained in:
Marius Unsel 2026-02-23 03:07:59 +01:00
parent 1c9e4d5aa4
commit c76df16a5c

View File

@ -100,24 +100,27 @@ const GameScreen = ({ nextLevel, won, open, openModal, closeModal, setLevel, res
let nextRoute = levelIdx === levels.length - 1 ? '/won' : '/level/' + levels[levelIdx + 1].name; let nextRoute = levelIdx === levels.length - 1 ? '/won' : '/level/' + levels[levelIdx + 1].name;
let [idxMsgs, setMsgIdx] = useState(level.introMessages && level.introMessages.length > 0 ? 0 : null); let [idxMsgs, setMsgIdx] = useState(level.introMessages && level.introMessages.length > 0 ? 0 : null);
console.log("GameScreen():won=", won)
// Auto-open modal for intro messages when level starts or when won // Auto-open modal for intro messages when level starts or when won
useEffect(() => { useEffect(() => {
// Auto-open modal for intro messages when level starts // Auto-open modal for intro messages when level starts
if (level.introMessages && level.introMessages.length > 0 && idxMsgs !== null && !open && !won) { if (level.introMessages && level.introMessages.length > 0 && idxMsgs !== null && !open && !won) {
openModal(); openModal();
console.log("GameScreen():autoopen")
} }
// Auto-open modal when won // Auto-open modal when won
if (won && !open) { if (won && !open) {
openModal(); openModal();
console.log("GameScreen():autoopen-won")
} }
}, [idxMsgs, won, level.introMessages]); // Proper dependencies }, [idxMsgs, won, level.introMessages]); // Proper dependencies
useEffect(() => game.init(level), []); // only called at creation useEffect(() => {
resetState();
game.init(level);
if (!level.introMessages || level.introMessages.length === 0) {
closeModal();
}
}, [level]);
return ( return (
<div className="game" ref={modalContainerRef}> <div className="game" ref={modalContainerRef}>