additional fix for furigana/romaji lyric handlers (#2188)

- Romaji conversion joined all synced lyric lines into one string. Because the block contained kana somewhere, hasKana passed for the entire array of lyrics.
This commit is contained in:
jeffvli
2026-06-29 20:49:52 -07:00
parent 7231f73ba7
commit b397790402
@@ -14,13 +14,13 @@ export const useFuriganaLyrics = (lyrics: LyricsResponse | null | undefined, ena
if (typeof lyrics === 'string') { if (typeof lyrics === 'string') {
return await lyricsApi.convertFurigana(lyrics); return await lyricsApi.convertFurigana(lyrics);
} else if (Array.isArray(lyrics)) { } else if (Array.isArray(lyrics)) {
const text = lyrics.map(([, line]) => line).join('\n'); const converted = await Promise.all(
const converted = await lyricsApi.convertFurigana(text); lyrics.map(async ([time, line]) => [
const convertedLines = converted.split('\n'); time,
return lyrics.map(([time], i) => [ await lyricsApi.convertFurigana(line),
time, ]),
convertedLines[i] ?? lyrics[i][1], );
]) as SynchronizedLyricsArray; return converted as SynchronizedLyricsArray;
} }
return lyrics; return lyrics;
}, },
@@ -38,13 +38,10 @@ export const useRomajiLyrics = (lyrics: LyricsResponse | null | undefined, enabl
if (typeof lyrics === 'string') { if (typeof lyrics === 'string') {
return await lyricsApi.convertRomaji(lyrics); return await lyricsApi.convertRomaji(lyrics);
} else if (Array.isArray(lyrics)) { } else if (Array.isArray(lyrics)) {
const text = lyrics.map(([, line]) => line).join('\n'); const converted = await Promise.all(
const converted = await lyricsApi.convertRomaji(text); lyrics.map(async ([time, line]) => [time, await lyricsApi.convertRomaji(line)]),
const convertedLines = converted.split('\n'); );
return lyrics.map(([time], i) => [ return converted as SynchronizedLyricsArray;
time,
convertedLines[i] ?? '',
]) as SynchronizedLyricsArray;
} }
return lyrics; return lyrics;
}, },