Координаты мыши js dnd

Необходиом получить координаты мыши (делаю dnd). На событие onmouseenter вызываю функцию, которая получает координаты :

x = e.pageX;
y = e.pageY;

Но объект улетает куда-то в космос. При получении координат просто по onClick по полю объект отрисовывается в нужном месте.

x = e.nativeEvent.offsetX;
y = e.nativeEvent.offsetY;

Как правильно получать координаты объекта при перетаскивании?

Полный код ниже:

let blockDraggable = undefined;
let x =0;
let y = 0;

function onClick(e) {
    x = e.nativeEvent.offsetX;
    y = e.nativeEvent.offsetY;
}


function moveBlock(e) {
    x = e.pageX;
    y = e.pageY;
}

function EditPanel() {


    const [{isOver}, drop] = useDrop({
        accept: ItemTypes.BLOCK,
        drop: () => {
            document.onmouseenter = function (e) {
                moveBlock(e)

                document.onmouseenter = null;
            }
        },
        collect: monitor => ({
            isOver: !!monitor.isOver(),
        }),
    });

        blockDraggable = <BlockDragable x={x}
                                        y={y}/>;
        
    return (

        <Col>
            <div ref={drop}
                 className={"editor"}
            >
                <div
                    className={"edit_panel"}
                    onClick={onClick}

                >
                    {console.log("drag " + x + ' ' + y)}
                    {blockDraggable}

                    {isOver && (
                        <div className="draggable_component"/>
                    )}
                </div>
            </div>
        </Col>
    )
}


export default EditPanel;

Ответы (0 шт):