diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index fd61c0961..6f529a997 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -73,6 +73,7 @@ "enable": "enable", "expand": "expand", "externalLinks": "external links", + "faster": "faster", "favorite": "favorite", "filter_one": "filter", "filter_other": "filters", @@ -122,6 +123,7 @@ "setting": "setting", "setting_one": "setting", "setting_other": "settings", + "slower": "slower", "share": "share", "size": "size", "sort": "sort", diff --git a/src/renderer/features/lyrics/lyrics-actions.tsx b/src/renderer/features/lyrics/lyrics-actions.tsx index 37ac245df..304a01e2d 100644 --- a/src/renderer/features/lyrics/lyrics-actions.tsx +++ b/src/renderer/features/lyrics/lyrics-actions.tsx @@ -20,19 +20,17 @@ import { LyricsOverride } from '/@/shared/types/domain-types'; interface LyricsActionsProps { index: number; languages: { label: string; value: string }[]; - onRemoveLyric: () => void; - onResetLyric: () => void; onSearchOverride: (params: LyricsOverride) => void; onTranslateLyric?: () => void; setIndex: (idx: number) => void; + synced?: boolean; } export const LyricsActions = ({ index, languages, onRemoveLyric, - onResetLyric, onSearchOverride, onTranslateLyric, setIndex, @@ -89,39 +87,34 @@ export const LyricsActions = ({ aria-label="Decrease lyric offset" icon="minus" onClick={() => handleLyricOffset(delayMs - 50)} + tooltip={{ + label: t('common.slower', { postProcess: 'sentenceCase' }), + openDelay: 0, + }} variant="subtle" /> handleLyricOffset(delayMs + 50)} + tooltip={{ + label: t('common.faster', { postProcess: 'sentenceCase' }), + openDelay: 0, + }} variant="subtle" /> - {isDesktop && sources.length ? ( - - ) : null} - - -
{isDesktop && sources.length ? (
+
{isDesktop && sources.length && onTranslateLyric ? ( diff --git a/src/renderer/features/lyrics/lyrics.tsx b/src/renderer/features/lyrics/lyrics.tsx index b52078ff2..5073add48 100644 --- a/src/renderer/features/lyrics/lyrics.tsx +++ b/src/renderer/features/lyrics/lyrics.tsx @@ -114,13 +114,13 @@ export const Lyrics = () => { } }, [override, overrideData, currentSong]); - const handleOnResetLyric = useCallback(() => { - setOverride(undefined); - queryClient.invalidateQueries({ - exact: true, - queryKey: queryKeys.songs.lyrics(currentSong?._serverId, { songId: currentSong?.id }), - }); - }, [currentSong?.id, currentSong?._serverId]); + // const handleOnResetLyric = useCallback(() => { + // setOverride(undefined); + // queryClient.invalidateQueries({ + // exact: true, + // queryKey: queryKeys.songs.lyrics(currentSong?._serverId, { songId: currentSong?.id }), + // }); + // }, [currentSong?.id, currentSong?._serverId]); const handleOnRemoveLyric = useCallback(() => { queryClient.setQueryData( @@ -259,7 +259,6 @@ export const Lyrics = () => { index={index} languages={languages} onRemoveLyric={handleOnRemoveLyric} - onResetLyric={handleOnResetLyric} onSearchOverride={handleOnSearchOverride} onTranslateLyric={ translationApiProvider && translationApiKey diff --git a/src/renderer/features/lyrics/synchronized-lyrics.tsx b/src/renderer/features/lyrics/synchronized-lyrics.tsx index 9f9feac32..355054b19 100644 --- a/src/renderer/features/lyrics/synchronized-lyrics.tsx +++ b/src/renderer/features/lyrics/synchronized-lyrics.tsx @@ -180,7 +180,7 @@ export const SynchronizedLyrics = ({ if (status === PlayerStatus.PLAYING) { // Use the current timestamp from player events - setCurrentLyric(timestamp * 1000 - delayMsRef.current); + setCurrentLyric(timestamp * 1000 + delayMsRef.current); return () => { // Cleanup: clear the timer when lyrics change or component unmounts @@ -208,7 +208,7 @@ export const SynchronizedLyrics = ({ delayMsRef.current = settings.delayMs; // Use the current timestamp from player events - setCurrentLyric(timestamp * 1000 - delayMsRef.current); + setCurrentLyric(timestamp * 1000 + delayMsRef.current); }, [setCurrentLyric, settings.delayMs, timestamp]); useEffect(() => { @@ -226,7 +226,7 @@ export const SynchronizedLyrics = ({ clearTimeout(lyricTimer.current); } - setCurrentLyric(timestamp * 1000 - delayMsRef.current); + setCurrentLyric(timestamp * 1000 + delayMsRef.current); }, [timestamp, setCurrentLyric, status]); useEffect(() => {