1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #5601 from thornbill/fix-marker-updating

This commit is contained in:
Bill Thornton 2024-05-25 01:50:07 -04:00 committed by GitHub
commit 167515dbf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 22 deletions

View file

@ -1835,21 +1835,11 @@ export default function (view) {
}; };
nowPlayingPositionSlider.getMarkerInfo = function () { nowPlayingPositionSlider.getMarkerInfo = function () {
const markers = [];
const item = currentItem;
// use markers based on chapters // use markers based on chapters
if (item?.Chapters?.length) { return currentItem?.Chapters?.map(currentChapter => ({
item.Chapters.forEach(currentChapter => { name: currentChapter.Name,
markers.push({ progress: currentChapter.StartPositionTicks / currentItem.RunTimeTicks
name: currentChapter.Name, })) || [];
progress: currentChapter.StartPositionTicks / item.RunTimeTicks
});
});
}
return markers;
}; };
view.querySelector('.btnPreviousTrack').addEventListener('click', function () { view.querySelector('.btnPreviousTrack').addEventListener('click', function () {

View file

@ -1,3 +1,5 @@
import isEqual from 'lodash-es/isEqual';
import browser from '../../scripts/browser'; import browser from '../../scripts/browser';
import dom from '../../scripts/dom'; import dom from '../../scripts/dom';
import layoutManager from '../../components/layoutManager'; import layoutManager from '../../components/layoutManager';
@ -203,16 +205,20 @@ function setMarker(range, valueMarker, marker, valueProgress) {
} }
function updateMarkers(range, currentValue) { function updateMarkers(range, currentValue) {
if (range.getMarkerInfo && !range.markerInfo) { if (range.getMarkerInfo) {
range.markerInfo = range.getMarkerInfo(); const newMarkerInfo = range.getMarkerInfo();
let markersHtml = ''; if (!range.markerInfo || !isEqual(range.markerInfo, newMarkerInfo)) {
range.markerInfo.forEach(() => { range.markerInfo = newMarkerInfo;
markersHtml += '<span class="sliderMarker" aria-hidden="true"></span>';
});
range.markerContainerElement.innerHTML = markersHtml;
range.markerElements = range.markerContainerElement.querySelectorAll('.sliderMarker'); let markersHtml = '';
range.markerInfo.forEach(() => {
markersHtml += '<span class="sliderMarker" aria-hidden="true"></span>';
});
range.markerContainerElement.innerHTML = markersHtml;
range.markerElements = range.markerContainerElement.querySelectorAll('.sliderMarker');
}
} }
if (range.markerInfo?.length && range.markerElements?.length) { if (range.markerInfo?.length && range.markerElements?.length) {