Pause spoilered videos on image pages, unpause on unspoiler

This commit is contained in:
Eliot Partridge 2024-05-14 16:25:30 -04:00
parent 7592b0f4d9
commit 1669977dae
No known key found for this signature in database
2 changed files with 10 additions and 2 deletions

View file

@ -87,11 +87,12 @@ function pickAndResize(elem) {
}
const muted = store.get('unmute_videos') ? '' : 'muted';
const autoplay = elem.classList.contains('hidden') ? '' : 'autoplay'; // Don't autoplay hidden videos initially
if (imageFormat === 'mp4') {
elem.classList.add('full-height');
elem.insertAdjacentHTML('afterbegin',
`<video controls autoplay loop ${muted} playsinline preload="auto" id="image-display"
`<video controls ${autoplay} loop ${muted} playsinline preload="auto" id="image-display"
width="${imageWidth}" height="${imageHeight}">
<source src="${uris.webm}" type="video/webm">
<source src="${uris.mp4}" type="video/mp4">
@ -104,7 +105,7 @@ function pickAndResize(elem) {
}
else if (imageFormat === 'webm') {
elem.insertAdjacentHTML('afterbegin',
`<video controls autoplay loop ${muted} playsinline id="image-display">
`<video controls ${autoplay} loop ${muted} playsinline id="image-display">
<source src="${uri}" type="video/webm">
<source src="${uri.replace(/webm$/, 'mp4')}" type="video/mp4">
<p class="block block--fixed block--warning">

View file

@ -64,9 +64,16 @@ export function showThumb(img: HTMLDivElement) {
export function showBlock(img: HTMLDivElement) {
img.querySelector('.image-filtered')?.classList.add('hidden');
const imageShowClasses = img.querySelector('.image-show')?.classList;
if (imageShowClasses) {
imageShowClasses.remove('hidden');
imageShowClasses.add('spoiler-pending');
// Play previously paused, spoilered video
const vidEl = img.querySelector('video');
if (vidEl) {
vidEl.play();
}
}
}