From 309dd15598591c0427606cd4c0d4eea2172c9ad0 Mon Sep 17 00:00:00 2001 From: KoloMl Date: Mon, 30 Dec 2024 23:08:06 +0400 Subject: [PATCH] Keep the current URIs and switch them when size is changed --- src/lib/components/FullscreenViewer.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib/components/FullscreenViewer.js b/src/lib/components/FullscreenViewer.js index faa3551..b74182d 100644 --- a/src/lib/components/FullscreenViewer.js +++ b/src/lib/components/FullscreenViewer.js @@ -17,6 +17,8 @@ export class FullscreenViewer extends BaseComponent { /** @type {boolean|null} */ #isClosingSwipeStarted = null; #isSizeFetched = false; + /** @type {App.ImageURIs|null} */ + #currentURIs = null; /** * @protected @@ -210,6 +212,10 @@ export class FullscreenViewer extends BaseComponent { this.#sizeSelectorElement.addEventListener('input', () => { const targetSize = this.#sizeSelectorElement.value; + if (this.#currentURIs) { + void this.show(this.#currentURIs); + } + if (!targetSize || targetSize === lastActiveSize || !(targetSize in FullscreenViewer.#previewSizes)) { return; } @@ -220,6 +226,8 @@ export class FullscreenViewer extends BaseComponent { } #close() { + this.#currentURIs = null; + this.container.classList.remove(FullscreenViewer.#shownState); document.body.style.overflow = null; @@ -260,6 +268,8 @@ export class FullscreenViewer extends BaseComponent { * @param {App.ImageURIs} imageUris */ async show(imageUris) { + this.#currentURIs = imageUris; + const url = await this.#resolveCurrentSelectedSizeUrl(imageUris); if (!url) {