diff options
author | Mario <mario@mariovavti.com> | 2025-05-06 09:13:35 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2025-05-06 09:13:35 +0000 |
commit | 77c310e393b87ae7d7162551989f25696aedb3ff (patch) | |
tree | 6c12f3919356342d574a7314184befa4f41e5b86 | |
parent | c5d75f23e56db9930a69e63e58b64b9421ba8396 (diff) | |
download | volse-hubzilla-77c310e393b87ae7d7162551989f25696aedb3ff.tar.gz volse-hubzilla-77c310e393b87ae7d7162551989f25696aedb3ff.tar.bz2 volse-hubzilla-77c310e393b87ae7d7162551989f25696aedb3ff.zip |
mark lazy loaded items read and minor cleanup
-rw-r--r-- | view/js/main.js | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/view/js/main.js b/view/js/main.js index dac947e7a..3cf607743 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -869,27 +869,21 @@ function imagesLoaded(elements, callback) { // Iterate through images to add load and error event listeners images.forEach((img) => { - let new_img = new Image(); new_img.src = img.src; -// new_img.loading = 'eager'; // Preload the image - if (new_img.complete && new_img.naturalHeight > 0) { // Image is already loaded, handle immediately + // console.log(`Image cached: ${new_img.src}`); checkComplete(new_img.src); - console.log(`Image success: ${img.src}`); - } else { - console.log('attmpt loading') // Add event listeners for load and error events new_img.addEventListener('load', () => { - console.log('load listener') - + // console.log(`Image loaded: ${new_img.src}`); checkComplete(new_img.src) }); new_img.addEventListener('error', () => { - console.log(`Image failed to load: ${img.src}`); + console.log(`Image failed to load: ${new_img.src}`); checkComplete(new_img.src); }); } @@ -1307,11 +1301,23 @@ function request(id, mid, verb, parent, uuid) { fetch('/request?verb=' + verb + '&mid=' + mid + '&parent=' + parent + '&module=' + module) .then(response => response.json()) .then(obj => { - imagesLoaded(obj.html, function () { + let parser = new DOMParser(); + let doc = parser.parseFromString(obj.html, 'text/html'); + let b64mids = []; + + doc.querySelectorAll('.thread-wrapper').forEach(function (e) { + let data = JSON.parse(e.dataset.b64mids); + b64mids.push(...data); + }); + + imagesLoaded(doc.querySelectorAll('.wall-item-body img'), function () { injectWithAnimation('wall-item-sub-thread-wrapper-' + id, obj.html); updateRelativeTime('.autotime'); loading.style.display = 'none'; collapseHeight(); + + document.dispatchEvent(new CustomEvent('hz:sse_setNotificationsStatus', { detail: b64mids })); + document.dispatchEvent(new Event('hz:sse_bs_counts')); }); }) |