regression(nodes,edges): removing nodes/edges breaks renderer

This commit is contained in:
Braks
2022-04-04 21:42:48 +02:00
parent 0bfca93a7b
commit 528cac5d33
4 changed files with 20 additions and 20 deletions
+3 -3
View File
@@ -1,20 +1,20 @@
<script lang="ts" setup>
import { useHandle, useVueFlow } from '../../composables'
import { ConnectionMode, Position } from '../../types'
import { ConnectionMode, GraphEdge, Position } from '../../types'
import { getEdgePositions, getHandle, getMarkerId } from '../../utils'
import EdgeAnchor from './EdgeAnchor.vue'
interface EdgeWrapper {
id: string
name: string
edge: GraphEdge
selectable?: boolean
updatable?: boolean
}
const props = defineProps<EdgeWrapper>()
const { store } = useVueFlow()
const edge = computed(() => store.getEdge(props.id)!)
if (!edge.value) throw new Error(`Edge with ${props.id} not found!`)
const edge = useVModel(props, 'edge')
const updating = ref(false)
+3 -3
View File
@@ -1,13 +1,14 @@
<script lang="ts" setup>
import { DraggableEventListener, DraggableCore } from '@braks/revue-draggable/src/index'
import { useVueFlow } from '../../composables'
import { SnapGrid } from '../../types'
import { GraphNode, SnapGrid } from '../../types'
import { NodeId } from '../../context'
import { getXYZPos } from '../../utils'
interface NodeWrapperProps {
id: string
name: string
node: GraphNode
draggable: boolean
selectable: boolean
connectable: boolean
@@ -16,8 +17,7 @@ interface NodeWrapperProps {
const props = defineProps<NodeWrapperProps>()
const { store } = useVueFlow()
const node = computed(() => store.getNode(props.id)!)
if (!node.value) throw new Error(`[vueflow]: Node with ${props.id} not found!`)
const node = useVModel(props, 'node')
provide(NodeId, props.id)
const nodeElement = templateRef<HTMLDivElement>('node-element', null)
@@ -75,20 +75,19 @@ export default {
>
<MarkerDefinitions v-if="group.isMaxLevel" :default-color="store.defaultMarkerColor" />
<g>
<template v-if="store.getEdges.length">
<EdgeWrapper
v-for="edge of group.edges"
:id="edge.id"
:key="edge.id"
:name="names[edge.type] || 'default'"
:selectable="typeof edge.selectable === 'undefined' ? store.elementsSelectable : edge.selectable"
:updatable="typeof edge.updatable === 'undefined' ? store.edgesUpdatable : edge.updatable"
>
<template #default="props">
<component :is="getType(edge.type)" v-bind="props" />
</template>
</EdgeWrapper>
</template>
<EdgeWrapper
v-for="edge of group.edges"
:id="edge.id"
:key="edge.id"
:edge="edge"
:name="names[edge.type] || 'default'"
:selectable="typeof edge.selectable === 'undefined' ? store.elementsSelectable : edge.selectable"
:updatable="typeof edge.updatable === 'undefined' ? store.edgesUpdatable : edge.updatable"
>
<template #default="props">
<component :is="getType(edge.type)" v-bind="props" />
</template>
</EdgeWrapper>
<ConnectionLine v-if="connectionLineVisible && sourceNode" :source-node="sourceNode">
<slot name="connection-line" />
</ConnectionLine>
@@ -48,6 +48,7 @@ export default {
v-for="node of store.getNodes"
:id="node.id"
:key="`vue-flow__node-${node.id}`"
:node="node"
:name="names[node.type] || 'default'"
:draggable="typeof node.draggable === 'undefined' ? store.nodesDraggable : !!node.draggable"
:selectable="typeof node.selectable === 'undefined' ? store.elementsSelectable : !!node.selectable"