Bug Description
When using useDrag with pointer.capture: true (default), setPointerCapture in pointerDown() throws DOMException: InvalidPointerId when pointer is cancelled before capture is established (e.g., rapid tapping on mobile).
Error
DOMException: Failed to execute 'setPointerCapture' on 'Element': InvalidPointerId.
at pointerDown (DragEngine.ts:93)
Issue
releasePointerCapture in pointerUp() has try-catch protection, but setPointerCapture in pointerDown() does not.
Proposed Fix
if (config.pointerCapture) {
try {
;(event.target as HTMLElement).setPointerCapture(event.pointerId)
} catch {
if (process.env.NODE_ENV === 'development') {
console.warn(`[@use-gesture]: Failed to capture pointer.`)
}
}
}
Bug Description
When using
useDragwithpointer.capture: true(default),setPointerCaptureinpointerDown()throwsDOMException: InvalidPointerIdwhen pointer is cancelled before capture is established (e.g., rapid tapping on mobile).Error
Issue
releasePointerCaptureinpointerUp()has try-catch protection, butsetPointerCaptureinpointerDown()does not.Proposed Fix