diff --git a/src/components/nodes/FloatingNodeHeader.tsx b/src/components/nodes/FloatingNodeHeader.tsx index 8da8f732..9326f95c 100644 --- a/src/components/nodes/FloatingNodeHeader.tsx +++ b/src/components/nodes/FloatingNodeHeader.tsx @@ -209,7 +209,7 @@ export function FloatingNodeHeader({ const { setNodes, getNodes, getViewport } = useReactFlow(); const isDraggingRef = useRef(false); - const handleHeaderMouseDown = useCallback((e: React.MouseEvent) => { + const handleHeaderPointerDown = useCallback((e: React.PointerEvent) => { // Don't drag from interactive elements if ((e.target as HTMLElement).closest('.nodrag, button, input, textarea, a')) return; if (e.button !== 0) return; @@ -241,7 +241,7 @@ export function FloatingNodeHeader({ isDraggingRef.current = false; - const handleMouseMove = (e: MouseEvent) => { + const handlePointerMove = (e: PointerEvent) => { const { zoom } = getViewport(); const dx = (e.clientX - startX) / zoom; const dy = (e.clientY - startY) / zoom; @@ -262,30 +262,32 @@ export function FloatingNodeHeader({ } }; - const handleMouseUp = () => { - document.removeEventListener('mousemove', handleMouseMove); - document.removeEventListener('mouseup', handleMouseUp); + const handlePointerUp = () => { + document.removeEventListener('pointermove', handlePointerMove); + document.removeEventListener('pointerup', handlePointerUp); isDraggingRef.current = false; }; - document.addEventListener('mousemove', handleMouseMove); - document.addEventListener('mouseup', handleMouseUp); + document.addEventListener('pointermove', handlePointerMove); + document.addEventListener('pointerup', handlePointerUp); }, [id, getNodes, getViewport, setNodes]); return (