diff --git a/src/components/Nodes/NodeWrapper.vue b/src/components/Nodes/NodeWrapper.vue index fb016ccd..f34a9795 100644 --- a/src/components/Nodes/NodeWrapper.vue +++ b/src/components/Nodes/NodeWrapper.vue @@ -94,25 +94,15 @@ const onDragStop: DraggableEventListener = ({ event, data: { deltaX, deltaY } }) store.hooks.nodeDragStop.trigger({ event, node: node.value }) } -const updatePosition = (width: number, height: number) => { - const handleBounds = getHandleBounds(nodeElement.value, scale.value, id) - node.value.dimensions = { - width, - height, - } - node.value.handleBounds = handleBounds -} - const removeEmpty = (obj: Record) => Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null)) store.updateNodePosition({ id: node.value.id, diff: { x: 0, y: 0 } }) onMounted(() => { - const dimensions = ref(getDimensions(nodeElement.value)) - useResizeObserver(nodeElement, () => (dimensions.value = getDimensions(nodeElement.value))) + useResizeObserver(nodeElement, () => store.updateNodeDimensions([{ id: node.value.id, nodeElement: nodeElement.value, forceUpdate: true }])) watch([() => node.value.type, () => node.value.sourcePosition, () => node.value.targetPosition], () => - nextTick(() => updatePosition(dimensions.value.width, dimensions.value.height)), + nextTick(() => store.updateNodeDimensions([{ id: node.value.id, nodeElement: nodeElement.value }])), ) - watch(dimensions, ({ width: w, height: h }) => nextTick(() => w > 0 && h > 0 && updatePosition(w, h)), { immediate: true }) + store.updateNodeDimensions([{ id: node.value.id, nodeElement: nodeElement.value }]) })