From 64a4b8c41805185fcef683fa5f33b0968651b002 Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Wed, 20 Oct 2021 21:37:48 +0200 Subject: [PATCH] fix: nodes as fragments feat: accept vnode as edge text --- examples/Edges/CustomLabel.vue | 10 ++++++++-- examples/Edges/EdgesExample.vue | 8 +++++++- src/components/Edges/Edge.vue | 2 +- src/components/Edges/EdgeText.vue | 13 +++++++++++-- src/components/Nodes/DefaultNode.vue | 14 ++++++-------- src/components/Nodes/InputNode.vue | 12 +++++------- src/components/Nodes/OutputNode.vue | 12 +++++------- src/container/Flow/Flow.vue | 18 +++++++++--------- src/container/NodeRenderer/NodeRenderer.vue | 4 +--- 9 files changed, 53 insertions(+), 40 deletions(-) diff --git a/examples/Edges/CustomLabel.vue b/examples/Edges/CustomLabel.vue index 364a9df4..67073d7d 100644 --- a/examples/Edges/CustomLabel.vue +++ b/examples/Edges/CustomLabel.vue @@ -1,4 +1,10 @@ - + diff --git a/examples/Edges/EdgesExample.vue b/examples/Edges/EdgesExample.vue index f5c52274..477c89fe 100644 --- a/examples/Edges/EdgesExample.vue +++ b/examples/Edges/EdgesExample.vue @@ -1,6 +1,7 @@ diff --git a/src/components/Nodes/InputNode.vue b/src/components/Nodes/InputNode.vue index 80a1f255..307ce45f 100644 --- a/src/components/Nodes/InputNode.vue +++ b/src/components/Nodes/InputNode.vue @@ -15,11 +15,9 @@ const props = withDefaults(defineProps(), { }) diff --git a/src/components/Nodes/OutputNode.vue b/src/components/Nodes/OutputNode.vue index e707bd86..5f9434db 100644 --- a/src/components/Nodes/OutputNode.vue +++ b/src/components/Nodes/OutputNode.vue @@ -15,11 +15,9 @@ const props = withDefaults(defineProps(), { }) diff --git a/src/container/Flow/Flow.vue b/src/container/Flow/Flow.vue index 8b66eaba..fd2a8daf 100644 --- a/src/container/Flow/Flow.vue +++ b/src/container/Flow/Flow.vue @@ -114,19 +114,19 @@ const defaultEdgeTypes: Record = { const store = useStore(props) const hooks = useHooks(emit) -const init = () => { - store.$state = { ...store.$state, ...props } - store.setElements(props.elements) - store.setMinZoom(props.minZoom) - store.setMaxZoom(props.maxZoom) - store.setTranslateExtent(props.translateExtent) - store.setNodeExtent(props.nodeExtent) +const init = (opts: typeof props) => { + store.$state = { ...store.$state, ...opts } + store.setElements(opts.elements) + store.setMinZoom(opts.minZoom) + store.setMaxZoom(opts.maxZoom) + store.setTranslateExtent(opts.translateExtent) + store.setNodeExtent(opts.nodeExtent) } onBeforeUnmount(() => store?.$dispose()) -onUpdated(() => init()) -init() +watch(props, (val) => init(val)) +init(props) const nodeTypes = createNodeTypes({ ...defaultNodeTypes, ...props.nodeTypes }) const edgeTypes = createEdgeTypes({ ...defaultEdgeTypes, ...props.edgeTypes }) diff --git a/src/container/NodeRenderer/NodeRenderer.vue b/src/container/NodeRenderer/NodeRenderer.vue index 16b4cf72..ce7de637 100644 --- a/src/container/NodeRenderer/NodeRenderer.vue +++ b/src/container/NodeRenderer/NodeRenderer.vue @@ -37,8 +37,6 @@ const type = (node: TNode) => { } return type } - -const selected = (nodeId: string) => store.selectedElements?.some(({ id }) => id === nodeId)