From 460c53c1d441d1e1354bb9ab0ed0e4e18641230d Mon Sep 17 00:00:00 2001 From: vibe-bot Date: Sat, 9 Aug 2025 15:28:32 +0200 Subject: [PATCH] =?UTF-8?q?Nightly:=20CHAOS=20fixt=20=20sofort=20erster=20?= =?UTF-8?q?Sound,=20stabile=20Wiederholung=20=C3=BCber=20Ref=20(13=20Min),?= =?UTF-8?q?=20sauberes=20Stoppen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/App.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index 42e339a..9625e24 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -29,6 +29,8 @@ export default function App() { const [mediaUrl, setMediaUrl] = useState(''); const [chaosMode, setChaosMode] = useState(false); const chaosTimeoutRef = useRef(null); + const chaosModeRef = useRef(false); + useEffect(() => { chaosModeRef.current = chaosMode; }, [chaosMode]); useEffect(() => { (async () => { @@ -184,13 +186,15 @@ export default function App() { }; const scheduleNextPlay = async () => { - if (!chaosMode) return; + if (!chaosModeRef.current) return; await playRandomSound(); const delay = 60_000 + Math.floor(Math.random() * 120_000); // 1-3 Minuten chaosTimeoutRef.current = window.setTimeout(scheduleNextPlay, delay); }; - // ersten Start zufällig zwischen 1-3 Minuten planen + // Sofort ersten Sound abspielen + await playRandomSound(); + // Nächsten zufällig in 1-3 Minuten planen const firstDelay = 60_000 + Math.floor(Math.random() * 120_000); chaosTimeoutRef.current = window.setTimeout(scheduleNextPlay, firstDelay); };