Skip to content

Commit

Permalink
Add lyrics auto scroll
Browse files Browse the repository at this point in the history
  • Loading branch information
scampower3 committed May 22, 2024
1 parent bb9b4ce commit 904b8bf
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/controllers/lyrics.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ let currentItem;

let savedLyrics;
let isDynamicLyric = false;
let autoScroll = true;

function dynamicLyricHtmlReducer(htmlAccumulator, lyric, index) {
if (layoutManager.tv) {
Expand Down Expand Up @@ -69,6 +70,9 @@ export default function (view) {
if (lyric) {
lyric.classList.remove('pastLyric');
lyric.classList.remove('futureLyric');
if (autoScroll) {
lyric.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
}
}

Expand Down Expand Up @@ -178,6 +182,7 @@ export default function (view) {
}

function onLyricClick(lyricTime) {
autoScroll = true;
playbackManager.seek(lyricTime);
if (playbackManager.paused()) {
playbackManager.playPause(currentPlayer);
Expand Down Expand Up @@ -236,6 +241,12 @@ export default function (view) {

view.addEventListener('viewshow', function () {
Events.on(playbackManager, 'playerchange', onPlayerChange);
document.addEventListener('wheel', () => (autoScroll = false));
document.addEventListener('keydown', (e) => {
if (e.keyCode == 38 || e.keyCode == 40) {
autoScroll = false;
}
});
try {
onLoad();
} catch (e) {
Expand All @@ -245,6 +256,12 @@ export default function (view) {

view.addEventListener('viewbeforehide', function () {
Events.off(playbackManager, 'playerchange', onPlayerChange);
document.removeEventListener('wheel', () => (autoScroll = false));
document.removeEventListener('keydown', (e) => {
if (e.keyCode == 38 || e.keyCode == 40) {
autoScroll = false;
}
});
releaseCurrentPlayer();
});
}

0 comments on commit 904b8bf

Please sign in to comment.