From 61c7ed6ffe5c2a60d4f4c22748528aec405b9cd7 Mon Sep 17 00:00:00 2001 From: nessi Date: Fri, 6 Feb 2026 17:09:43 +0100 Subject: [PATCH] Improve winner celebration logic in game meta updates Adjusted the logic to ensure celebrations trigger only when the winner ID changes and not on initial meta loads. Also added a reset check to prevent celebrations when the winner ID becomes empty. --- frontend/src/App.jsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 634bd7b..84b88dd 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -240,22 +240,24 @@ export default function App() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [me?.id, gameId]); - // ✅ Winner Celebration Trigger: - // - beim ersten Load eines Spiels NICHT feiern - // - feiern nur, wenn winner_user_id sich danach ändert (Host speichert) useEffect(() => { + // wid kann auch "" sein (kein Sieger) const wid = gameMeta?.winner_user_id ? String(gameMeta.winner_user_id) : ""; - if (!wid) return; + // Baseline beim ersten Meta-Load setzen – egal ob Winner existiert oder nicht if (!winnerBaselineRef.current) { winnerBaselineRef.current = true; - lastWinnerIdRef.current = wid; + lastWinnerIdRef.current = wid; // kann "" sein return; } + // Nur reagieren, wenn sich wid ändert if (lastWinnerIdRef.current !== wid) { lastWinnerIdRef.current = wid; + // wenn wid leer wird (reset), nicht feiern + if (!wid) return; + const name = (gameMeta?.winner_display_name || "").trim() || (gameMeta?.winner_email || "").trim() || @@ -266,6 +268,7 @@ export default function App() { } }, [gameMeta?.winner_user_id, gameMeta?.winner_display_name, gameMeta?.winner_email]); + // ===== Auth actions ===== const doLogin = async () => { await api("/auth/login", {