From ee38f4af9be69220c72d72d2d2e5078dff6ea7e6 Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 15 Apr 2022 20:54:08 +0200 Subject: [PATCH] fix(edges): Remove orphaned edges # What's changed? * Remove source/targetNode properties from GraphEdge type, the source/target will be fetched with getters if necessary * Remove edges when they have no existing source or target nodes that can be found in the state * Add nodes to custom edge test --- .../integration/1-store/setState.spec.ts | 10 +++ package/src/components/Edges/EdgeWrapper.vue | 36 ++++----- package/src/components/Nodes/NodeWrapper.vue | 2 +- .../container/EdgeRenderer/EdgeRenderer.vue | 8 +- .../container/NodeRenderer/NodeRenderer.vue | 2 +- package/src/store/actions.ts | 13 ++-- package/src/store/getters.ts | 75 ++++++++++++------- package/src/types/edge.ts | 4 +- package/src/utils/changes.ts | 17 +++-- package/src/utils/edge.ts | 17 ++--- 10 files changed, 111 insertions(+), 73 deletions(-) diff --git a/e2e/cypress/integration/1-store/setState.spec.ts b/e2e/cypress/integration/1-store/setState.spec.ts index 5077333b..8450e5e0 100644 --- a/e2e/cypress/integration/1-store/setState.spec.ts +++ b/e2e/cypress/integration/1-store/setState.spec.ts @@ -46,6 +46,16 @@ describe('test store state', () => { it('gets custom edge types', () => { store.setState({ + nodes: [ + { + id: '1', + position: { x: 0, y: 0 }, + }, + { + id: '2', + position: { x: 50, y: 50 }, + }, + ], edges: [ { id: '1', diff --git a/package/src/components/Edges/EdgeWrapper.vue b/package/src/components/Edges/EdgeWrapper.vue index ed8c55e2..559478f2 100644 --- a/package/src/components/Edges/EdgeWrapper.vue +++ b/package/src/components/Edges/EdgeWrapper.vue @@ -1,7 +1,7 @@