From 87b61d7717559f8290a653b31eda23a0742bf407 Mon Sep 17 00:00:00 2001 From: trisua <me@trisua.com> Date: Thu, 26 Jun 2025 13:41:08 -0400 Subject: [PATCH] fix: various infinite timeline issues --- crates/app/src/public/js/atto.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/app/src/public/js/atto.js b/crates/app/src/public/js/atto.js index 852e6d6..0ff868f 100644 --- a/crates/app/src/public/js/atto.js +++ b/crates/app/src/public/js/atto.js @@ -288,7 +288,7 @@ media_theme_pref(); const goals = [150, 250, 500, 1000]; track_element.setAttribute("data-scroll", "0"); - scroll_element.addEventListener("scroll", (e) => { + scroll_element.addEventListener("scroll", (_) => { track_element.setAttribute("data-scroll", scroll_element.scrollTop); for (const goal of goals) { @@ -635,7 +635,6 @@ media_theme_pref(); return; } - // biome-ignore lint/style/noParameterAssign: no it isn't page += 1; await load_partial(); }) @@ -837,7 +836,6 @@ media_theme_pref(); }, time_until_remove * 1000); const count_interval = setInterval(() => { - // biome-ignore lint/style/noParameterAssign: no it isn't time_until_remove -= 1; timer.innerText = time_until_remove; }, 1000); @@ -1195,6 +1193,7 @@ ${option.input_element_type === "textarea" ? `${option.value}</textarea>` : ""} self.IO_DATA_SEEN_IDS = []; self.IO_DATA_WAITING = false; self.IO_HAS_LOADED_AT_LEAST_ONCE = false; + self.IO_DATA_DISCONNECTED = false; if (!paginated_mode) { self.IO_DATA_OBSERVER.observe(self.IO_DATA_MARKER); @@ -1207,7 +1206,10 @@ ${option.input_element_type === "textarea" ? `${option.value}</textarea>` : ""} setTimeout(() => { if (!self.IO_HAS_LOADED_AT_LEAST_ONCE) { - self.io_load_data(); + // reload + Turbo.visit(window.location.href); + self.IO_DATA_OBSERVER.disconnect(); + console.log("timeline load fail :("); } }, 1500); @@ -1243,12 +1245,17 @@ ${option.input_element_type === "textarea" ? `${option.value}</textarea>` : ""} loading_skel.remove(); } + if (self.IO_DATA_DISCONNECTED) { + return; + } + if ( text.includes(`!<!-- observer_disconnect_${window.BUILD_CODE} -->`) ) { console.log("io_data_end; disconnect"); self.IO_DATA_OBSERVER.disconnect(); self.IO_DATA_ELEMENT.innerHTML += text; + self.IO_DATA_DISCONNECTED = true; return; }