mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update previousTrack click event to avoid redundant calls to playbackManager
This commit is contained in:
parent
6057c6912e
commit
169f7a8b7d
2 changed files with 26 additions and 18 deletions
|
@ -169,19 +169,23 @@ import { appRouter } from '../appRouter';
|
||||||
|
|
||||||
elem.querySelector('.previousTrackButton').addEventListener('click', function (e) {
|
elem.querySelector('.previousTrackButton').addEventListener('click', function (e) {
|
||||||
if (currentPlayer) {
|
if (currentPlayer) {
|
||||||
if (lastPlayerState.NowPlayingItem.MediaType === 'Audio' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) {
|
if (lastPlayerState.NowPlayingItem.MediaType === 'Audio') {
|
||||||
// Cancel this event if doubleclick is fired
|
// Cancel this event if doubleclick is fired. The actual previousTrack will be processed by the 'dblclick' event
|
||||||
if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) {
|
if (e.detail > 1 ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Return to start of track, unless we are already (almost) at the beginning. In the latter case, continue and move
|
||||||
|
// to the previous track, unless we are at the first track so no previous track exists.
|
||||||
|
if (currentPlayer._currentTime >= 2 || lastPlayerState.NowPlayingItem.IndexNumber == 1 ) {
|
||||||
playbackManager.seekPercent(0, currentPlayer);
|
playbackManager.seekPercent(0, currentPlayer);
|
||||||
// This is done automatically by playbackManager, however, setting this here gives instant visual feedback.
|
// This is done automatically by playbackManager, however, setting this here gives instant visual feedback.
|
||||||
// TODO: Check why seekPercentage doesn't reflect the changes inmmediately, so we can remove this workaround.
|
// TODO: Check why seekPercentage doesn't reflect the changes inmmediately, so we can remove this workaround.
|
||||||
positionSlider.value = 0;
|
positionSlider.value = 0;
|
||||||
} else {
|
return;
|
||||||
playbackManager.previousTrack(currentPlayer);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
playbackManager.previousTrack(currentPlayer);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
elem.querySelector('.previousTrackButton').addEventListener('dblclick', function () {
|
elem.querySelector('.previousTrackButton').addEventListener('dblclick', function () {
|
||||||
|
|
|
@ -763,19 +763,23 @@ export default function () {
|
||||||
|
|
||||||
context.querySelector('.btnPreviousTrack').addEventListener('click', function (e) {
|
context.querySelector('.btnPreviousTrack').addEventListener('click', function (e) {
|
||||||
if (currentPlayer) {
|
if (currentPlayer) {
|
||||||
if (lastPlayerState.NowPlayingItem.MediaType === 'Audio' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) {
|
if (lastPlayerState.NowPlayingItem.MediaType === 'Audio') {
|
||||||
// Cancel this event if doubleclick is fired
|
// Cancel this event if doubleclick is fired. The actual previousTrack will be processed by the 'dblclick' event
|
||||||
if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) {
|
if (e.detail > 1 ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Return to start of track, unless we are already (almost) at the beginning. In the latter case, continue and move
|
||||||
|
// to the previous track, unless we are at the first track so no previous track exists.
|
||||||
|
if (currentPlayer._currentTime >= 2 || lastPlayerState.NowPlayingItem.IndexNumber == 1 ) {
|
||||||
playbackManager.seekPercent(0, currentPlayer);
|
playbackManager.seekPercent(0, currentPlayer);
|
||||||
// This is done automatically by playbackManager. However, setting this here gives instant visual feedback.
|
// This is done automatically by playbackManager, however, setting this here gives instant visual feedback.
|
||||||
// TODO: Check why seekPercentage doesn't reflect the changes inmmediately, so we can remove this workaround.
|
// TODO: Check why seekPercentage doesn't reflect the changes inmmediately, so we can remove this workaround.
|
||||||
positionSlider.value = 0;
|
positionSlider.value = 0;
|
||||||
} else {
|
return;
|
||||||
playbackManager.previousTrack(currentPlayer);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
playbackManager.previousTrack(currentPlayer);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
context.querySelector('.btnPreviousTrack').addEventListener('dblclick', function () {
|
context.querySelector('.btnPreviousTrack').addEventListener('dblclick', function () {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue