diff --git a/packages/vue-flow/src/composables/useDrag.ts b/packages/vue-flow/src/composables/useDrag.ts index 45f7cb8c..627dc4fe 100644 --- a/packages/vue-flow/src/composables/useDrag.ts +++ b/packages/vue-flow/src/composables/useDrag.ts @@ -98,8 +98,6 @@ function useDrag(params: UseDragParams) { } }) .on('drag', (event: UseDragEvent) => { - parentPos = getParentNodePosition(node && node.parentNode ? getNode(node!.parentNode!) : undefined) - if (node && (lastPos.x !== node.position.x || lastPos.y !== node.position.y)) { lastPos.x = node.position.x lastPos.y = node.position.y diff --git a/packages/vue-flow/src/utils/drag.ts b/packages/vue-flow/src/utils/drag.ts index db314e43..ff284767 100644 --- a/packages/vue-flow/src/utils/drag.ts +++ b/packages/vue-flow/src/utils/drag.ts @@ -80,18 +80,18 @@ export function updatePosition( let currentExtent = dragItem.extent || nodeExtent let nextPosition = { x: mousePos.x - dragItem.distance.x, y: mousePos.y - dragItem.distance.y } - if (dragItem.extent === 'parent') { + if (dragItem.extent === 'parent' && parent) { if (dragItem.parentNode && dragItem.dimensions.width && dragItem.dimensions.height) { currentExtent = - parent?.width && parent?.height + parent.dimensions.width && parent.dimensions.height ? [ [0, 0], [parent.dimensions.width - dragItem.dimensions.width, parent.dimensions.height - dragItem.dimensions.height], ] : currentExtent - } else { - currentExtent = nodeExtent } + } else { + currentExtent = nodeExtent } nextPosition = currentExtent ? clampPosition(nextPosition, currentExtent as CoordinateExtent) : nextPosition