| ... | @@ -260,26 +260,18 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { | ... | @@ -260,26 +260,18 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { |
| 260 | updateTurnStripScrollState(); | 260 | updateTurnStripScrollState(); |
| 261 | const onScroll = () => updateTurnStripScrollState(); | 261 | const onScroll = () => updateTurnStripScrollState(); |
| 262 | | 262 | |
| 263 | const onWheel = (event: WheelEvent) => { | | |
| 264 | if (!element) return; | | |
| 265 | if (element.scrollWidth <= element.clientWidth + 1) return; | | |
| 266 | if (Math.abs(event.deltaY) <= Math.abs(event.deltaX)) return; | | |
| 267 | event.preventDefault(); | | |
| 268 | element.scrollBy({ left: event.deltaY, behavior: "auto" }); | | |
| 269 | }; | | |
| 270 | | | |
| 271 | element.addEventListener("scroll", onScroll, { passive: true }); | 263 | element.addEventListener("scroll", onScroll, { passive: true }); |
| 272 | element.addEventListener("wheel", onWheel, { passive: false }); | 264 | element.addEventListener("wheel", onTurnStripWheel, { passive: false }); |
| 273 | | 265 | |
| 274 | const resizeObserver = new ResizeObserver(() => updateTurnStripScrollState()); | 266 | const resizeObserver = new ResizeObserver(() => updateTurnStripScrollState()); |
| 275 | resizeObserver.observe(element); | 267 | resizeObserver.observe(element); |
| 276 | | 268 | |
| 277 | return () => { | 269 | return () => { |
| 278 | element.removeEventListener("scroll", onScroll); | 270 | element.removeEventListener("scroll", onScroll); |
| 279 | element.removeEventListener("wheel", onWheel); | 271 | element.removeEventListener("wheel", onTurnStripWheel); |
| 280 | resizeObserver.disconnect(); | 272 | resizeObserver.disconnect(); |
| 281 | }; | 273 | }; |
| 282 | }, [updateTurnStripScrollState]); | 274 | }, [updateTurnStripScrollState, onTurnStripWheel]); |
| 283 | | 275 | |
| 284 | useEffect(() => { | 276 | useEffect(() => { |
| 285 | updateTurnStripScrollState(); | 277 | updateTurnStripScrollState(); |