From 376c09d1ea2e6fd807e05cdbcea59e3a949ee8be Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 4 Dec 2025 01:38:38 -0800 Subject: [PATCH] allow clear button to remove searched/override lyrics --- src/renderer/features/lyrics/lyrics.tsx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/renderer/features/lyrics/lyrics.tsx b/src/renderer/features/lyrics/lyrics.tsx index f3b26c4a6..cdc8e1d23 100644 --- a/src/renderer/features/lyrics/lyrics.tsx +++ b/src/renderer/features/lyrics/lyrics.tsx @@ -178,20 +178,37 @@ export const Lyrics = () => { // }, [currentSong?.id, currentSong?._serverId]); const handleOnRemoveLyric = useCallback(() => { + setOverride(undefined); + + // Clear the main lyrics query cache queryClient.setQueryData( queryKeys.songs.lyrics(currentSong?._serverId, { songId: currentSong?.id }), - (prev: FullLyricsMetadata | undefined) => { + (prev: FullLyricsMetadata | StructuredLyric[] | undefined) => { if (!prev) { return undefined; } + if (Array.isArray(prev)) { + return undefined; + } + return { ...prev, lyrics: '', }; }, ); - }, [currentSong?.id, currentSong?._serverId]); + + // Clear the override query cache if it exists + if (override) { + queryClient.removeQueries({ + queryKey: queryKeys.songs.lyricsByRemoteId({ + remoteSongId: override.id, + remoteSource: override.source, + }), + }); + } + }, [currentSong?.id, currentSong?._serverId, override]); const fetchTranslation = useCallback(async () => { if (!lyrics) return;