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 @@