UNPKG

5.49 kBSource Map (JSON)View Raw
1{"version":3,"sources":["useDragEvents.js"],"names":["assignDragEventOnMount","targetRef","handlerRef","eventName","cb","dragEvent","current","addEventListener","removeEventListener","useDragEvents","setDraggable","onDrag","setOnDrag","onDrop","setOnDrop","onDragEnter","setOnDragEnter","onDragEnd","setOnDragEnd","onDragExit","setOnDragExit","onDragLeave","setOnDragLeave","onDragOver","setOnDragOver","onDragStart","setOnDragStart","hasAttribute","setAttribute","Object","freeze"],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport hasOwnProperty from './utils/hasOwnProperty';\nimport createCbSetterErrorProxy from './utils/createCbSetterErrorProxy';\nimport createHandlerSetter from './utils/createHandlerSetter';\n\nconst assignDragEventOnMount = (targetRef, handlerRef, eventName) => {\n useEffect(() => {\n const cb = (dragEvent) => {\n if (handlerRef.current) {\n handlerRef.current(dragEvent);\n }\n };\n\n if (targetRef.current) {\n targetRef.current.addEventListener(eventName, cb);\n }\n\n return () => {\n if (targetRef.current) {\n targetRef.current.removeEventListener(eventName, cb);\n }\n };\n }, []);\n};\n\n/**\n * Returns an object of callback setters to handle the drag-related events.\n * It accepts a DOM ref representing the events target (where attach the events to).\n *\n * Returned callback setters: `onDrag`, `onDrop`, `onDragEnter`, `onDragEnd`, `onDragExit`, `onDragLeave`,\n * `onDragOver`, `onDragStart`;\n */\nconst useDragEvents = (targetRef, setDraggable = true) => {\n const [onDrag, setOnDrag] = createHandlerSetter();\n const [onDrop, setOnDrop] = createHandlerSetter();\n const [onDragEnter, setOnDragEnter] = createHandlerSetter();\n const [onDragEnd, setOnDragEnd] = createHandlerSetter();\n const [onDragExit, setOnDragExit] = createHandlerSetter();\n const [onDragLeave, setOnDragLeave] = createHandlerSetter();\n const [onDragOver, setOnDragOver] = createHandlerSetter();\n const [onDragStart, setOnDragStart] = createHandlerSetter();\n\n if (targetRef !== null && !hasOwnProperty(targetRef, 'current')) {\n return createCbSetterErrorProxy('Unable to assign any drag event to the given ref');\n }\n\n useEffect(() => {\n if (setDraggable && targetRef.current && !targetRef.current.hasAttribute('draggable')) {\n targetRef.current.setAttribute('draggable', true);\n }\n }, []);\n\n assignDragEventOnMount(targetRef, onDrag, 'drag');\n assignDragEventOnMount(targetRef, onDrop, 'drop');\n assignDragEventOnMount(targetRef, onDragEnter, 'dragenter');\n assignDragEventOnMount(targetRef, onDragEnd, 'dragend');\n assignDragEventOnMount(targetRef, onDragExit, 'dragexit');\n assignDragEventOnMount(targetRef, onDragLeave, 'dragleave');\n assignDragEventOnMount(targetRef, onDragOver, 'dragover');\n assignDragEventOnMount(targetRef, onDragStart, 'dragstart');\n\n return Object.freeze({\n onDrag: setOnDrag,\n onDrop: setOnDrop,\n onDragEnter: setOnDragEnter,\n onDragEnd: setOnDragEnd,\n onDragExit: setOnDragExit,\n onDragLeave: setOnDragLeave,\n onDragOver: setOnDragOver,\n onDragStart: setOnDragStart,\n });\n};\n\nexport default useDragEvents;\n"],"file":"useDragEvents.js"}
\No newline at end of file