fix lazyloading bug for previous inactive tabs that become active

This commit is contained in:
2026-05-15 05:19:11 +02:00
parent 80187ccd41
commit b43268ddc6

View File

@@ -186,6 +186,20 @@ window.cancelAnimFrame = (function () {
}, { rootMargin: '300px 0px', threshold: 0.01 }); }, { rootMargin: '300px 0px', threshold: 0.01 });
} }
// Nudge lazy loading on tab switch to prevent stuck skeletons in inactive tabs
if (!window._lazyVisibilityBound) {
window._lazyVisibilityBound = true;
document.addEventListener('visibilitychange', () => {
if (!document.hidden && typeof window.initLazyLoading === 'function') {
// Clear observation state for pending items to force re-observation
document.querySelectorAll('.lazy-thumb:not(.loaded)').forEach(t => {
delete t.dataset.lazyObserved;
});
window.initLazyLoading();
}
});
}
document.querySelectorAll('.lazy-thumb').forEach(thumb => { document.querySelectorAll('.lazy-thumb').forEach(thumb => {
if (!thumb.dataset.lazyObserved) { if (!thumb.dataset.lazyObserved) {
thumb.dataset.lazyObserved = 'true'; thumb.dataset.lazyObserved = 'true';
@@ -6543,6 +6557,11 @@ class NotificationSystem {
thumb.style.opacity = '1'; thumb.style.opacity = '1';
thumb.style.transform = 'scale(1)'; thumb.style.transform = 'scale(1)';
}); });
// Refresh lazy loading for the newly added item
if (typeof window.initLazyLoading === 'function') {
window.initLazyLoading();
}
} }
handleActivity(data) { handleActivity(data) {