From c0d59893f644802be37ecdf2b557e73171212fd8 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:33:01 -0500 Subject: [PATCH] conditionally attach listeners only when dragging --- web/src/components/timeline/SummaryTimeline.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/web/src/components/timeline/SummaryTimeline.tsx b/web/src/components/timeline/SummaryTimeline.tsx index f1113cf70..581787110 100644 --- a/web/src/components/timeline/SummaryTimeline.tsx +++ b/web/src/components/timeline/SummaryTimeline.tsx @@ -267,17 +267,24 @@ export function SummaryTimeline({ ); useEffect(() => { - document.addEventListener("mousemove", handleMouseMove); - document.addEventListener("touchmove", handleMouseMove); - document.addEventListener("mouseup", handleMouseUp); - document.addEventListener("touchend", handleMouseUp); + if (isDragging) { + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("touchmove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + document.addEventListener("touchend", handleMouseUp); + } else { + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("touchmove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + document.removeEventListener("touchend", handleMouseUp); + } return () => { document.removeEventListener("mousemove", handleMouseMove); document.removeEventListener("touchmove", handleMouseMove); document.removeEventListener("mouseup", handleMouseUp); document.removeEventListener("touchend", handleMouseUp); }; - }, [handleMouseMove, handleMouseUp]); + }, [handleMouseMove, handleMouseUp, isDragging]); return (