set up listeners with a ref

This commit is contained in:
Josh Hawkins 2024-03-20 21:43:15 -05:00
parent c0d59893f6
commit c60c95b488

View File

@ -266,23 +266,26 @@ export function SummaryTimeline({
], ],
); );
const documentRef = useRef<Document | null>(document);
useEffect(() => { useEffect(() => {
const documentInstance = documentRef.current;
if (isDragging) { if (isDragging) {
document.addEventListener("mousemove", handleMouseMove); documentInstance?.addEventListener("mousemove", handleMouseMove);
document.addEventListener("touchmove", handleMouseMove); documentInstance?.addEventListener("touchmove", handleMouseMove);
document.addEventListener("mouseup", handleMouseUp); documentInstance?.addEventListener("mouseup", handleMouseUp);
document.addEventListener("touchend", handleMouseUp); documentInstance?.addEventListener("touchend", handleMouseUp);
} else { } else {
document.removeEventListener("mousemove", handleMouseMove); documentInstance?.removeEventListener("mousemove", handleMouseMove);
document.removeEventListener("touchmove", handleMouseMove); documentInstance?.removeEventListener("touchmove", handleMouseMove);
document.removeEventListener("mouseup", handleMouseUp); documentInstance?.removeEventListener("mouseup", handleMouseUp);
document.removeEventListener("touchend", handleMouseUp); documentInstance?.removeEventListener("touchend", handleMouseUp);
} }
return () => { return () => {
document.removeEventListener("mousemove", handleMouseMove); documentInstance?.removeEventListener("mousemove", handleMouseMove);
document.removeEventListener("touchmove", handleMouseMove); documentInstance?.removeEventListener("touchmove", handleMouseMove);
document.removeEventListener("mouseup", handleMouseUp); documentInstance?.removeEventListener("mouseup", handleMouseUp);
document.removeEventListener("touchend", handleMouseUp); documentInstance?.removeEventListener("touchend", handleMouseUp);
}; };
}, [handleMouseMove, handleMouseUp, isDragging]); }, [handleMouseMove, handleMouseUp, isDragging]);