| ... | ... | @@ -3,14 +3,7 @@ import { FileDiff, type FileDiffMetadata, Virtualizer } from "@pierre/diffs/reac |
| 3 | 3 | import { useQuery } from "@tanstack/react-query"; |
| 4 | 4 | import { useNavigate, useParams, useSearch } from "@tanstack/react-router"; |
| 5 | 5 | import { ChevronLeftIcon, ChevronRightIcon, Columns2Icon, Rows3Icon } from "lucide-react"; |
| 6 | | import { |
| 7 | | type WheelEvent as ReactWheelEvent, |
| 8 | | useCallback, |
| 9 | | useEffect, |
| 10 | | useMemo, |
| 11 | | useRef, |
| 12 | | useState, |
| 13 | | } from "react"; |
| 6 | import { useCallback, useEffect, useMemo, useRef, useState } from "react"; |
| 14 | 7 | import { checkpointDiffQueryOptions } from "~/lib/providerReactQuery"; |
| 15 | 8 | import { cn } from "~/lib/utils"; |
| 16 | 9 | import { parseDiffRouteSearch, stripDiffSearchParams } from "../diffRouteSearch"; |
| ... | ... | @@ -250,7 +243,7 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { |
| 250 | 243 | if (!element) return; |
| 251 | 244 | element.scrollBy({ left: offset, behavior: "smooth" }); |
| 252 | 245 | }, []); |
| 253 | | const onTurnStripWheel = useCallback((event: ReactWheelEvent<HTMLDivElement>) => { |
| 246 | const onTurnStripWheel = useCallback((event: WheelEvent) => { |
| 254 | 247 | const element = turnStripRef.current; |
| 255 | 248 | if (!element) return; |
| 256 | 249 | if (element.scrollWidth <= element.clientWidth + 1) return; |
| ... | ... | @@ -267,15 +260,17 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { |
| 267 | 260 | updateTurnStripScrollState(); |
| 268 | 261 | const onScroll = () => updateTurnStripScrollState(); |
| 269 | 262 | element.addEventListener("scroll", onScroll, { passive: true }); |
| 263 | element.addEventListener("wheel", onTurnStripWheel, { passive: false }); |
| 270 | 264 | |
| 271 | 265 | const resizeObserver = new ResizeObserver(() => updateTurnStripScrollState()); |
| 272 | 266 | resizeObserver.observe(element); |
| 273 | 267 | |
| 274 | 268 | return () => { |
| 275 | 269 | element.removeEventListener("scroll", onScroll); |
| 270 | element.removeEventListener("wheel", onTurnStripWheel); |
| 276 | 271 | resizeObserver.disconnect(); |
| 277 | 272 | }; |
| 278 | | }, [updateTurnStripScrollState]); |
| 273 | }, [onTurnStripWheel, updateTurnStripScrollState]); |
| 279 | 274 | |
| 280 | 275 | useEffect(() => { |
| 281 | 276 | updateTurnStripScrollState(); |
| ... | ... | @@ -344,7 +339,6 @@ export default function DiffPanel({ mode = "inline" }: DiffPanelProps) { |
| 344 | 339 | <div |
| 345 | 340 | ref={turnStripRef} |
| 346 | 341 | className="turn-chip-strip flex gap-1 overflow-x-auto px-8 py-0.5" |
| 347 | | onWheel={onTurnStripWheel} |
| 348 | 342 | > |
| 349 | 343 | <button |
| 350 | 344 | type="button" |