regression(nodes,edges): removing nodes/edges breaks renderer
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user