fix: node not updating handlebounds when handle pos changes

* watch source & target pos and update node dimensions on next tick
This commit is contained in:
Braks
2021-10-22 08:16:32 +02:00
parent 9532615cfd
commit 26b3901bd5
4 changed files with 44 additions and 25 deletions
+14 -8
View File
@@ -1,6 +1,5 @@
<script lang="ts" setup>
import { DraggableEventListener } from '@braks/revue-draggable'
import { watchPostEffect } from 'vue'
import { Node, NodeType, SnapGrid } from '~/types'
import { NodeIdContextKey } from '~/context'
import { useHooks, useStore } from '~/composables'
@@ -45,11 +44,8 @@ const onSelectNodeHandler = (event: MouseEvent) => {
if (selectable) {
store.unsetNodesSelection()
if (!props.selected) {
store.addSelectedElements([n])
}
if (!props.selected) store.addSelectedElements([n])
}
hooks.nodeClick.trigger({ event, node: n })
}
}
@@ -61,9 +57,7 @@ const onDragStart: DraggableEventListener = ({ event }) => {
if (props.selectNodesOnDrag && selectable) {
store.unsetNodesSelection()
if (!props.selected) {
store.addSelectedElements([n])
}
if (!props.selected) store.addSelectedElements([n])
} else if (!props.selectNodesOnDrag && !props.selected && selectable) {
store.unsetNodesSelection()
store.addSelectedElements([])
@@ -134,6 +128,18 @@ watch(
})
},
)
watch(
() => props.node.sourcePosition && props.node.targetPosition,
() => {
nextTick(() => {
store.updateNodeDimensions({
id: props.node.id,
nodeElement: nodeElement.value,
forceUpdate: true,
})
})
},
)
</script>
<template>