From 09b524045481e2fc8d51943a50116249d546721f Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 17 Jul 2026 08:18:23 +0200 Subject: [PATCH] fix(MoodMusic): resolve exhaustive-deps so CI build passes; behaviour unchanged --- src/components/MoodMusic.jsx | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/components/MoodMusic.jsx b/src/components/MoodMusic.jsx index d917b06..5d76936 100644 --- a/src/components/MoodMusic.jsx +++ b/src/components/MoodMusic.jsx @@ -40,12 +40,11 @@ export default function MoodMusic() { }); }, []); - // Create audio element on mount + // Create audio element on mount (volume handled by separate effect) useEffect(() => { const audio = new Audio(); audio.preload = 'auto'; audio.loop = true; - audio.volume = volume; audioRef.current = audio; return () => { if (fadeTimeoutRef.current) clearTimeout(fadeTimeoutRef.current); @@ -54,13 +53,22 @@ export default function MoodMusic() { }; }, []); - // Update volume when it changes + // Set initial volume on mount, then update whenever volume changes useEffect(() => { if (audioRef.current) { audioRef.current.volume = volume; } }, [volume]); + const stopPlayback = useCallback(() => { + if (audioRef.current) { + audioRef.current.pause(); + audioRef.current.src = ''; + } + setActiveMood(null); + setNowPlaying(''); + }, []); + const playMood = useCallback((track) => { if (!track || !audioRef.current) return; @@ -111,16 +119,7 @@ export default function MoodMusic() { setActiveMood(track.mood); setNowPlaying(track.title); } - }, [activeMood, volume]); - - const stopPlayback = useCallback(() => { - if (audioRef.current) { - audioRef.current.pause(); - audioRef.current.src = ''; - } - setActiveMood(null); - setNowPlaying(''); - }, []); + }, [activeMood, volume, stopPlayback]); if (loading) { return (