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:
commit
167515dbf0
2 changed files with 18 additions and 22 deletions
|
@ -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 () {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue