aboutsummaryrefslogtreecommitdiffstats
path: root/frontend-vanilla/src/main.ts
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-17 08:42:00 -0800
committerGitHub <noreply@github.com>2026-02-17 08:42:00 -0800
commitee7896ab4fb183850e94307b057e3fe1a67610ca (patch)
tree3f19efc1c79acd3143730b9d677fc2d921e22644 /frontend-vanilla/src/main.ts
parent5c3b6234caf8b6c27f37d67d4e04c853e59888ef (diff)
parent90177f1645bf886a2e4f84f4db287ba379f01773 (diff)
downloadneko-ee7896ab4fb183850e94307b057e3fe1a67610ca.tar.gz
neko-ee7896ab4fb183850e94307b057e3fe1a67610ca.tar.bz2
neko-ee7896ab4fb183850e94307b057e3fe1a67610ca.zip
Merge pull request #10 from adammathes/claude/fix-open-tickets-IVV1C
fix: store sentinel IntersectionObserver in module-level variable to …
Diffstat (limited to 'frontend-vanilla/src/main.ts')
-rw-r--r--frontend-vanilla/src/main.ts6
1 files changed, 3 insertions, 3 deletions
diff --git a/frontend-vanilla/src/main.ts b/frontend-vanilla/src/main.ts
index 5f8056c..bdd0e97 100644
--- a/frontend-vanilla/src/main.ts
+++ b/frontend-vanilla/src/main.ts
@@ -270,15 +270,15 @@ export function renderItems() {
// Use the actual scroll container as IntersectionObserver root
const scrollRoot = document.getElementById('main-content');
- // Setup infinite scroll
+ // Setup infinite scroll — stored in itemObserver so it has a GC root and won't be collected
const sentinel = document.getElementById('load-more-sentinel');
if (sentinel) {
- const observer = new IntersectionObserver((entries) => {
+ itemObserver = new IntersectionObserver((entries) => {
if (entries[0].isIntersecting && !store.loading && store.hasMore) {
loadMore();
}
}, { root: scrollRoot, threshold: 0.1 });
- observer.observe(sentinel);
+ itemObserver.observe(sentinel);
}
// Scroll listener for reading items