From 605e5335588adeb96bc9549553e9976b84338a8d Mon Sep 17 00:00:00 2001 From: adamelmore <2363879+adamdottv@users.noreply.github.com> Date: Tue, 27 Jan 2026 15:55:26 -0600 Subject: fix(app): file tree not always loading --- packages/app/src/pages/session.tsx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'packages/app/src/pages') diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 7257cdc11..a4e6e24b1 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -1256,7 +1256,33 @@ export default function Page() { if (!wants) return if (sync.data.session_diff[id] !== undefined) return - sync.session.diff(id) + const state = { + cancelled: false, + attempt: 0, + timer: undefined as number | undefined, + } + + const load = () => { + if (state.cancelled) return + const pending = sync.session.diff(id) + if (!pending) return + pending.catch(() => { + if (state.cancelled) return + const attempt = state.attempt + 1 + state.attempt = attempt + if (attempt > 5) return + if (state.timer !== undefined) clearTimeout(state.timer) + const wait = Math.min(10000, 250 * 2 ** (attempt - 1)) + state.timer = window.setTimeout(load, wait) + }) + } + + load() + + onCleanup(() => { + state.cancelled = true + if (state.timer !== undefined) clearTimeout(state.timer) + }) }) const autoScroll = createAutoScroll({ -- cgit v1.2.3