import { memo, useRef } from "react" import { useDragContext } from "./draggableContext" /** * * @param {string} - dragElementType - this will set the data-draggable-type which can be accessed on droppable to check if its allowed or not * @returns */ const DraggableWrapper = memo(({dragElementType, dragWidgetClass=null, currentPos, className, children, ...props}) => { const { onDragStart, onDragEnd, setPosMetaData } = useDragContext() const draggableRef = useRef(null) const setInitialPos = (e) => { const {clientX, clientY} = e const draggableRect = draggableRef.current.getBoundingClientRect() const posMetaData = { dragStartCursorPos: {x: clientX, y: clientY}, initialPos: {x: draggableRect.left, y: draggableRect.top} } setPosMetaData(posMetaData) } /** * * @param {DragEvent} event */ const handleDragStart = (event) => { // event.dataTransfer.setData("text/plain", "") onDragStart(draggableRef?.current, dragWidgetClass) } const handleDragEnd = (e) => { // console.log("Drag end: ", e, e.target.closest('div')) onDragEnd() } return (