fix(MoodMusic): resolve exhaustive-deps so CI build passes; behaviour unchanged
Some checks are pending
CI / build-and-test (push) Waiting to run

This commit is contained in:
2026-07-17 08:18:23 +02:00
parent 111f4b3d0d
commit 09b5240454

View File

@@ -40,12 +40,11 @@ export default function MoodMusic() {
}); });
}, []); }, []);
// Create audio element on mount // Create audio element on mount (volume handled by separate effect)
useEffect(() => { useEffect(() => {
const audio = new Audio(); const audio = new Audio();
audio.preload = 'auto'; audio.preload = 'auto';
audio.loop = true; audio.loop = true;
audio.volume = volume;
audioRef.current = audio; audioRef.current = audio;
return () => { return () => {
if (fadeTimeoutRef.current) clearTimeout(fadeTimeoutRef.current); 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(() => { useEffect(() => {
if (audioRef.current) { if (audioRef.current) {
audioRef.current.volume = volume; audioRef.current.volume = volume;
} }
}, [volume]); }, [volume]);
const stopPlayback = useCallback(() => {
if (audioRef.current) {
audioRef.current.pause();
audioRef.current.src = '';
}
setActiveMood(null);
setNowPlaying('');
}, []);
const playMood = useCallback((track) => { const playMood = useCallback((track) => {
if (!track || !audioRef.current) return; if (!track || !audioRef.current) return;
@@ -111,16 +119,7 @@ export default function MoodMusic() {
setActiveMood(track.mood); setActiveMood(track.mood);
setNowPlaying(track.title); setNowPlaying(track.title);
} }
}, [activeMood, volume]); }, [activeMood, volume, stopPlayback]);
const stopPlayback = useCallback(() => {
if (audioRef.current) {
audioRef.current.pause();
audioRef.current.src = '';
}
setActiveMood(null);
setNowPlaying('');
}, []);
if (loading) { if (loading) {
return ( return (