Prevent cancelled drags from committing moves
All checks were successful
Deploy Sokko G / deploy (push) Successful in 19s

This commit is contained in:
Shinuwa 2026-09-13 08:37:16 +02:00
parent e6e08b458c
commit 6bcde57e88
6 changed files with 148 additions and 12 deletions

View file

@ -50,17 +50,21 @@ export function usePointerReorder({
const { onMove } = optionsRef.current;
const target = getDropTarget(event);
if (target.id) onMove?.(draggingId, target.id, target.placement);
handlePointerCancel();
}
function handlePointerCancel() {
setDraggingId("");
setDropTarget({ id: "", placement: "before" });
}
window.addEventListener("pointermove", handlePointerMove);
window.addEventListener("pointerup", handlePointerUp, { once: true });
window.addEventListener("pointercancel", handlePointerUp, { once: true });
window.addEventListener("pointercancel", handlePointerCancel, { once: true });
return () => {
window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp);
window.removeEventListener("pointercancel", handlePointerUp);
window.removeEventListener("pointercancel", handlePointerCancel);
};
}, [draggingId, targetSelector]);