fixed drag position

This commit is contained in:
paul
2025-03-06 14:32:00 +05:30
parent ed333d6ee6
commit f3cd37b1f9
8 changed files with 1481 additions and 21 deletions

View File

@@ -7,12 +7,24 @@ 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, className, children, ...props}) => {
const DraggableWrapper = memo(({dragElementType, dragWidgetClass=null, currentPos, className, children, ...props}) => {
const { onDragStart, onDragEnd } = useDragContext()
const { onDragStart, onDragEnd, setPosMetaData } = useDragContext()
const draggableRef = useRef(null)
const setInitialPos = (e) => {
const {clientX, clientY} = e
const posMetaData = {
dragStartCursorPos: {x: clientX, y: clientY},
initialPos: currentPos
}
setPosMetaData(posMetaData)
}
/**
*
* @param {DragEvent} event
@@ -38,6 +50,8 @@ const DraggableWrapper = memo(({dragElementType, dragWidgetClass=null, className
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
ref={draggableRef}
onPointerDown={setInitialPos}
onMouseDown={setInitialPos}
{...props}
>
{children}