From b4919f9960dabf0d3f4bae7c9da8c9508cdf8ded Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:42:31 -0800 Subject: [PATCH 1/2] Simplify folder updating --- javascript/gallery.js | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/javascript/gallery.js b/javascript/gallery.js index 5791990c3..f42b94e9a 100644 --- a/javascript/gallery.js +++ b/javascript/gallery.js @@ -1193,11 +1193,7 @@ async function fetchFilesWS(evt) { // fetch file-by-file list over websockets ws.send(encodeURI(evt.target.name)); } -async function pruneImages() { - // TODO replace img.src with placeholder for images that are not visible -} - -async function galleryVisible() { +async function updateFolders() { // if (el.folders.children.length > 0) return; const res = await authFetch(`${window.api}/browser/folders`); if (!res || res.status !== 200) return; @@ -1208,11 +1204,6 @@ async function galleryVisible() { const f = new GalleryFolder(folder); el.folders.appendChild(f); } - pruneImagesTimer = setInterval(pruneImages, 1000); -} - -async function galleryHidden() { - if (pruneImagesTimer) clearInterval(pruneImagesTimer); } async function monitorGalleries() { @@ -1295,12 +1286,9 @@ async function initGallery() { // triggered on gradio change to monitor when ui el.btnSend = gradioApp().getElementById('tab-gallery-send-image'); document.getElementById('tab-gallery-files').style.height = opts.logmonitor_show ? '75vh' : '85vh'; - const intersectionObserver = new IntersectionObserver((entries) => { - if (entries[0].intersectionRatio <= 0) galleryHidden(); - if (entries[0].intersectionRatio > 0) galleryVisible(); - }); - intersectionObserver.observe(el.folders); monitorGalleries(); + updateFolders(); + monitorOption('browser_folders', updateFolders); } // register on startup From 695e9496279b3cbf6a5c0dc702d3d4de864e5256 Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Fri, 30 Jan 2026 22:20:50 -0800 Subject: [PATCH 2/2] Move content clear to avoid layout flash --- javascript/gallery.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/gallery.js b/javascript/gallery.js index f42b94e9a..992d8b298 100644 --- a/javascript/gallery.js +++ b/javascript/gallery.js @@ -1197,9 +1197,9 @@ async function updateFolders() { // if (el.folders.children.length > 0) return; const res = await authFetch(`${window.api}/browser/folders`); if (!res || res.status !== 200) return; - el.folders.innerHTML = ''; url = res.url.split('/sdapi')[0].replace('http', 'ws'); // update global url as ws need fqdn const folders = await res.json(); + el.folders.innerHTML = ''; for (const folder of folders) { const f = new GalleryFolder(folder); el.folders.appendChild(f);