diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index dfbb7b93..b509824c 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -98,11 +98,21 @@ export function NodeWrapper({ }); const hasPointerEvents = isSelectable || isDraggable || onClick || onMouseEnter || onMouseMove || onMouseLeave; - const onMouseEnterHandler = onMouseEnter ? (event: MouseEvent) => onMouseEnter(event, { ...node }) : undefined; - const onMouseMoveHandler = onMouseMove ? (event: MouseEvent) => onMouseMove(event, { ...node }) : undefined; - const onMouseLeaveHandler = onMouseLeave ? (event: MouseEvent) => onMouseLeave(event, { ...node }) : undefined; - const onContextMenuHandler = onContextMenu ? (event: MouseEvent) => onContextMenu(event, { ...node }) : undefined; - const onDoubleClickHandler = onDoubleClick ? (event: MouseEvent) => onDoubleClick(event, { ...node }) : undefined; + const onMouseEnterHandler = onMouseEnter + ? (event: MouseEvent) => onMouseEnter(event, { ...internals.userNode }) + : undefined; + const onMouseMoveHandler = onMouseMove + ? (event: MouseEvent) => onMouseMove(event, { ...internals.userNode }) + : undefined; + const onMouseLeaveHandler = onMouseLeave + ? (event: MouseEvent) => onMouseLeave(event, { ...internals.userNode }) + : undefined; + const onContextMenuHandler = onContextMenu + ? (event: MouseEvent) => onContextMenu(event, { ...internals.userNode }) + : undefined; + const onDoubleClickHandler = onDoubleClick + ? (event: MouseEvent) => onDoubleClick(event, { ...internals.userNode }) + : undefined; const onSelectNodeHandler = (event: MouseEvent) => { const { selectNodesOnDrag, nodeDragThreshold } = store.getState(); @@ -118,7 +128,7 @@ export function NodeWrapper({ } if (onClick) { - onClick(event, { ...node }); + onClick(event, { ...internals.userNode }); } }; diff --git a/packages/system/src/xydrag/utils.ts b/packages/system/src/xydrag/utils.ts index bb836a32..ee8326ff 100644 --- a/packages/system/src/xydrag/utils.ts +++ b/packages/system/src/xydrag/utils.ts @@ -77,7 +77,7 @@ export function getDragItems( // returns two params: // 1. the dragged node (or the first of the list, if we are dragging a node selection) // 2. array of selected nodes (for multi selections) -export function getEventHandlerParams({ +export function getEventHandlerParams({ nodeId, dragItems, nodeLookup, @@ -85,11 +85,11 @@ export function getEventHandlerParams({ nodeId?: string; dragItems: Map; nodeLookup: Map; -}): [NodeType, NodeType[]] { - const nodesFromDragItems: NodeType[] = []; +}): [NodeBase, NodeBase[]] { + const nodesFromDragItems: NodeBase[] = []; for (const [id, dragItem] of dragItems) { - const node = nodeLookup.get(id); + const node = nodeLookup.get(id)?.internals.userNode; if (node) { nodesFromDragItems.push({ @@ -103,7 +103,8 @@ export function getEventHandlerParams({ return [nodesFromDragItems[0], nodesFromDragItems]; } - const node = nodeLookup.get(nodeId)!; + const node = nodeLookup.get(nodeId)!.internals.userNode; + return [ { ...node,