From aaa1b5f63abe8f512ff5f07207eeb0e585c519c0 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Fri, 9 Jun 2023 03:39:38 -0700 Subject: [PATCH] Fix override on song change --- src/renderer/features/lyrics/lyrics.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/renderer/features/lyrics/lyrics.tsx b/src/renderer/features/lyrics/lyrics.tsx index 80396dfb..26841c79 100644 --- a/src/renderer/features/lyrics/lyrics.tsx +++ b/src/renderer/features/lyrics/lyrics.tsx @@ -106,6 +106,7 @@ export const Lyrics = () => { const handleOnSearchOverride = useCallback((params: LyricsOverride) => { setOverride(params); + setClear(false); }, []); const { data: overrideLyrics, isInitialLoading: isOverrideLoading } = useSongLyricsByRemoteId({ @@ -120,9 +121,19 @@ export const Lyrics = () => { }); useEffect(() => { - // We want to reset the clear flag whenever a song changes - setClear(false); - }, [currentSong]); + const unsubSongChange = usePlayerStore.subscribe( + (state) => state.current.song, + () => { + setOverride(undefined); + setClear(false); + }, + { equalityFn: (a, b) => a?.id === b?.id }, + ); + + return () => { + unsubSongChange(); + }; + }, []); const isLoadingLyrics = isInitialLoading || isOverrideLoading;