From f4ec7d6c1bc71e627ad8d5e717ed3d895c71a4db Mon Sep 17 00:00:00 2001 From: Isaac Sanchez-Hawkins <266845420+isanchez404@users.noreply.github.com> Date: Tue, 12 May 2026 04:07:40 -0400 Subject: [PATCH] fix(ui): prevent duplicate long press timers (#1192) * fix(ui): prevent duplicate long press timers * fix(ui): clear long press on touch cancel --------- Co-authored-by: Isaac Sanchez --- packages/ui/src/hooks/useLongPress.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/hooks/useLongPress.ts b/packages/ui/src/hooks/useLongPress.ts index 9c489fe1..c883f082 100644 --- a/packages/ui/src/hooks/useLongPress.ts +++ b/packages/ui/src/hooks/useLongPress.ts @@ -26,6 +26,7 @@ export function useLongPress({ }, []); const onPointerDown = useCallback((e: React.PointerEvent | React.TouchEvent) => { + clear(); isLongPressRef.current = false; // Store start position to detect movement @@ -44,7 +45,7 @@ export function useLongPress({ } onLongPress(); }, delay); - }, [delay, onLongPress, enableHaptic]); + }, [clear, delay, onLongPress, enableHaptic]); const onPointerMove = useCallback((e: React.PointerEvent | React.TouchEvent) => { if (!startPosRef.current || !timerRef.current) return; @@ -95,6 +96,7 @@ export function useLongPress({ onTouchStart: onPointerDown, // Add touch handlers for better mobile support onTouchMove: onPointerMove, onTouchEnd: onPointerUp, + onTouchCancel: clear, onContextMenu, }; }