Prevent cancelled drags from committing moves
All checks were successful
Deploy Sokko G / deploy (push) Successful in 19s
All checks were successful
Deploy Sokko G / deploy (push) Successful in 19s
This commit is contained in:
parent
e6e08b458c
commit
6bcde57e88
6 changed files with 148 additions and 12 deletions
|
|
@ -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]);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue