UNPKG

5.16 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8var _react = require("react");
9
10var _hasOwnProperty = _interopRequireDefault(require("./utils/hasOwnProperty"));
11
12var _createCbSetterErrorProxy = _interopRequireDefault(require("./utils/createCbSetterErrorProxy"));
13
14var _createHandlerSetter17 = _interopRequireDefault(require("./utils/createHandlerSetter"));
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
19
20function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
21
22function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
23
24function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
26var assignDragEventOnMount = function assignDragEventOnMount(targetRef, handlerRef, eventName) {
27 (0, _react.useEffect)(function () {
28 var cb = function cb(dragEvent) {
29 if (handlerRef.current) {
30 handlerRef.current(dragEvent);
31 }
32 };
33
34 if (targetRef.current) {
35 targetRef.current.addEventListener(eventName, cb);
36 }
37
38 return function () {
39 if (targetRef.current) {
40 targetRef.current.removeEventListener(eventName, cb);
41 }
42 };
43 }, []);
44};
45
46var useDragEvents = function useDragEvents(targetRef) {
47 var setDraggable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
48
49 var _createHandlerSetter = (0, _createHandlerSetter17["default"])(),
50 _createHandlerSetter2 = _slicedToArray(_createHandlerSetter, 2),
51 onDrag = _createHandlerSetter2[0],
52 setOnDrag = _createHandlerSetter2[1];
53
54 var _createHandlerSetter3 = (0, _createHandlerSetter17["default"])(),
55 _createHandlerSetter4 = _slicedToArray(_createHandlerSetter3, 2),
56 onDrop = _createHandlerSetter4[0],
57 setOnDrop = _createHandlerSetter4[1];
58
59 var _createHandlerSetter5 = (0, _createHandlerSetter17["default"])(),
60 _createHandlerSetter6 = _slicedToArray(_createHandlerSetter5, 2),
61 onDragEnter = _createHandlerSetter6[0],
62 setOnDragEnter = _createHandlerSetter6[1];
63
64 var _createHandlerSetter7 = (0, _createHandlerSetter17["default"])(),
65 _createHandlerSetter8 = _slicedToArray(_createHandlerSetter7, 2),
66 onDragEnd = _createHandlerSetter8[0],
67 setOnDragEnd = _createHandlerSetter8[1];
68
69 var _createHandlerSetter9 = (0, _createHandlerSetter17["default"])(),
70 _createHandlerSetter10 = _slicedToArray(_createHandlerSetter9, 2),
71 onDragExit = _createHandlerSetter10[0],
72 setOnDragExit = _createHandlerSetter10[1];
73
74 var _createHandlerSetter11 = (0, _createHandlerSetter17["default"])(),
75 _createHandlerSetter12 = _slicedToArray(_createHandlerSetter11, 2),
76 onDragLeave = _createHandlerSetter12[0],
77 setOnDragLeave = _createHandlerSetter12[1];
78
79 var _createHandlerSetter13 = (0, _createHandlerSetter17["default"])(),
80 _createHandlerSetter14 = _slicedToArray(_createHandlerSetter13, 2),
81 onDragOver = _createHandlerSetter14[0],
82 setOnDragOver = _createHandlerSetter14[1];
83
84 var _createHandlerSetter15 = (0, _createHandlerSetter17["default"])(),
85 _createHandlerSetter16 = _slicedToArray(_createHandlerSetter15, 2),
86 onDragStart = _createHandlerSetter16[0],
87 setOnDragStart = _createHandlerSetter16[1];
88
89 if (targetRef !== null && !(0, _hasOwnProperty["default"])(targetRef, 'current')) {
90 return (0, _createCbSetterErrorProxy["default"])('Unable to assign any drag event to the given ref');
91 }
92
93 (0, _react.useEffect)(function () {
94 if (setDraggable && targetRef.current && !targetRef.current.hasAttribute('draggable')) {
95 targetRef.current.setAttribute('draggable', true);
96 }
97 }, []);
98 assignDragEventOnMount(targetRef, onDrag, 'drag');
99 assignDragEventOnMount(targetRef, onDrop, 'drop');
100 assignDragEventOnMount(targetRef, onDragEnter, 'dragenter');
101 assignDragEventOnMount(targetRef, onDragEnd, 'dragend');
102 assignDragEventOnMount(targetRef, onDragExit, 'dragexit');
103 assignDragEventOnMount(targetRef, onDragLeave, 'dragleave');
104 assignDragEventOnMount(targetRef, onDragOver, 'dragover');
105 assignDragEventOnMount(targetRef, onDragStart, 'dragstart');
106 return Object.freeze({
107 onDrag: setOnDrag,
108 onDrop: setOnDrop,
109 onDragEnter: setOnDragEnter,
110 onDragEnd: setOnDragEnd,
111 onDragExit: setOnDragExit,
112 onDragLeave: setOnDragLeave,
113 onDragOver: setOnDragOver,
114 onDragStart: setOnDragStart
115 });
116};
117
118var _default = useDragEvents;
119exports["default"] = _default;
120//# sourceMappingURL=useDragEvents.js.map