From 632c1417ea6d499ae67dcaec2cc6342d5155028e Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Thu, 19 Feb 2026 16:04:25 -0800 Subject: [PATCH] Update apps/web/src/components/DiffPanel.tsx Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- apps/web/src/components/DiffPanel.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/web/src/components/DiffPanel.tsx b/apps/web/src/components/DiffPanel.tsx index ebd498704ae946cae7f9cea00d25e2980c446bf1..20c2bac804ec857f22be3043bb325a064671d083 100644 --- a/apps/web/src/components/DiffPanel.tsx +++ b/apps/web/src/components/DiffPanel.tsx @@ -259,18 +259,27 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { updateTurnStripScrollState(); const onScroll = () => updateTurnStripScrollState(); + + const onWheel = (event: WheelEvent) => { + if (!element) return; + if (element.scrollWidth <= element.clientWidth + 1) return; + if (Math.abs(event.deltaY) <= Math.abs(event.deltaX)) return; + event.preventDefault(); + element.scrollBy({ left: event.deltaY, behavior: "auto" }); + }; + element.addEventListener("scroll", onScroll, { passive: true }); - element.addEventListener("wheel", onTurnStripWheel, { passive: false }); + element.addEventListener("wheel", onWheel, { passive: false }); const resizeObserver = new ResizeObserver(() => updateTurnStripScrollState()); resizeObserver.observe(element); return () => { element.removeEventListener("scroll", onScroll); - element.removeEventListener("wheel", onTurnStripWheel); + element.removeEventListener("wheel", onWheel); resizeObserver.disconnect(); }; - }, [onTurnStripWheel, updateTurnStripScrollState]); + }, [updateTurnStripScrollState]); useEffect(() => { updateTurnStripScrollState(); -- 2.54.0