@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
40 lines (36 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function getDragEventsAssigner({ onDrag, onDragEnd }) {
const handleDrag = (event) => {
if (event.cancelable) {
event.preventDefault();
}
onDrag(event);
};
const handleDragEnd = (event) => {
if (event.cancelable) {
event.preventDefault();
}
removeEvents();
onDragEnd(event);
};
const assignEvents = () => {
document.addEventListener("mousemove", handleDrag);
document.addEventListener("mouseup", handleDragEnd);
document.addEventListener("touchmove", handleDrag, { passive: false });
document.addEventListener("touchend", handleDragEnd, { passive: false });
document.addEventListener("touchcancel", handleDragEnd, { passive: false });
document.addEventListener("mouseleave", handleDragEnd);
};
function removeEvents() {
document.removeEventListener("mousemove", handleDrag);
document.removeEventListener("mouseup", handleDragEnd);
document.removeEventListener("touchmove", handleDrag);
document.removeEventListener("touchend", handleDragEnd);
document.removeEventListener("touchcancel", handleDragEnd);
document.removeEventListener("mouseleave", handleDragEnd);
}
return { assignEvents, removeEvents };
}
exports.getDragEventsAssigner = getDragEventsAssigner;
//# sourceMappingURL=get-drag-events-assigner.js.map