refactor(nodes): remove node and parent node props from wrapper

This commit is contained in:
Braks
2022-05-27 23:36:01 +02:00
parent 1e506dc151
commit 80878a228c
2 changed files with 11 additions and 15 deletions
@@ -5,10 +5,8 @@ import { GraphNode, NodeComponent, SnapGrid } from '../../types'
import { NodeId } from '../../context'
import { getConnectedEdges, getHandleBounds, getXYZPos } from '../../utils'
const { id, type, name, node, parentNode, draggable, selectable, connectable, snapGrid } = defineProps<{
const { id, type, name, draggable, selectable, connectable, snapGrid } = defineProps<{
id: string
node: GraphNode
parentNode?: GraphNode
draggable: boolean
selectable: boolean
connectable: boolean
@@ -35,6 +33,9 @@ const {
resetSelectedElements,
} = $(useVueFlow())
const node = $computed(() => getNode(id)!)
const parentNode = $computed(() => (node.parentNode ? getNode(node.parentNode) : undefined))
const nodeElement = ref()
let dragging = $ref(false)
@@ -69,38 +70,35 @@ useDrag({
},
onDrag(event, { dx, dy }) {
dragging = true
updateNodePosition({ id: node.id, diff: { x: dx, y: dy } })
updateNodePosition({ id, diff: { x: dx, y: dy } })
emits.nodeDrag({ event: event.sourceEvent, node, connectedEdges: getConnectedEdges([node], edges) })
},
onStop(event) {
dragging = false
updateNodePosition({ id: node.id })
emits.nodeDragStop({ event: event.sourceEvent, node, connectedEdges: getConnectedEdges([node], edges) })
},
})
onBeforeMount(() => {
updateNodePosition({ id: node.id, diff: { x: 0, y: 0 } })
updateNodePosition({ id, diff: { x: 0, y: 0 } })
})
onMounted(() => {
const observer = useResizeObserver(nodeElement, () =>
updateNodeDimensions([{ id: node.id, nodeElement: nodeElement.value, forceUpdate: true }]),
updateNodeDimensions([{ id, nodeElement: nodeElement.value, forceUpdate: true }]),
)
watch(
[() => node.type, () => node.sourcePosition, () => node.targetPosition],
() => {
updateNodeDimensions([{ id: node.id, nodeElement: nodeElement.value }])
updateNodeDimensions([{ id, nodeElement: nodeElement.value }])
},
{ flush: 'post' },
)
onBeforeUnmount(() => observer.stop())
updateNodeDimensions([{ id: node.id, nodeElement: nodeElement.value, forceUpdate: true }])
updateNodeDimensions([{ id, nodeElement: nodeElement.value, forceUpdate: true }])
watch(
[() => node.position, () => parentNode?.computedPosition, () => node.selected, () => parentNode?.selected],
@@ -233,7 +231,7 @@ export default {
:is-valid-target-pos="node.isValidTargetPos"
:is-valid-source-pos="node.isValidSourcePos"
:parent-node="node.parentNode"
:dragging="!!node.dragging"
:dragging="dragging"
:z-index="node.computedPosition.z"
:target-position="node.targetPosition"
:source-position="node.sourcePosition"
@@ -61,9 +61,7 @@ export default {
:id="node.id"
:key="node.id"
:type="getType(node)"
:name="getType(node) ? node.type ?? 'default' : 'default'"
:node="node"
:parent-node="node.parentNode ? getNode(node.parentNode) : undefined"
:name="node.type || 'default'"
:draggable="draggable(node.draggable)"
:selectable="selectable(node.selectable)"
:connectable="connectable(node.connectable)"