From 5d6ff3257cc7769ae01dda636dcbc614d8bbc662 Mon Sep 17 00:00:00 2001 From: eti Date: Mon, 7 Sep 2026 19:26:37 +0200 Subject: [PATCH] web/repo: drive the diff scroller from the element pierre renders into Signed-off-by: eti --- web/src/lib/components/repo/DiffCodeView.svelte | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web/src/lib/components/repo/DiffCodeView.svelte b/web/src/lib/components/repo/DiffCodeView.svelte index c9bb3f5e7..91007c6d4 100644 --- a/web/src/lib/components/repo/DiffCodeView.svelte +++ b/web/src/lib/components/repo/DiffCodeView.svelte @@ -59,6 +59,7 @@ const LOOKAHEAD_ITEMS = 8; let root: HTMLElement | undefined = $state(); + let scroller: HTMLElement | undefined; let contentHeight = $state(0); let view: CodeView | undefined = $state.raw(); let initError = $state(); @@ -207,6 +208,7 @@ }); instance.setup(element); + scroller = element; instance.setItems(files.map(itemOf)); appliedStyle = untrack(() => diffStyle); appliedFiles = files; @@ -220,6 +222,7 @@ for (const id of [...headers.keys()]) dropHeader(id); view?.cleanUp(); view = undefined; + scroller = undefined; }; }); @@ -240,7 +243,7 @@ }; const syncScroll = () => { - const element = root; + const element = scroller; if (!element) return; const container = element.firstElementChild; if (container) { @@ -259,7 +262,7 @@ $effect(() => { const instance = view; - const element = root; + const element = scroller; if (!instance || !element) return; syncScroll(); const observer = new ResizeObserver(syncScroll); -- 2.51.2