From 3cb6d98f3f1bb021820ef74c169b2aaa4a213e73 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Wed, 15 Feb 2023 18:19:59 +0100 Subject: [PATCH] chore(core): cleanup update edge action Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- packages/core/src/store/actions.ts | 2 +- packages/core/src/utils/store.ts | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/core/src/store/actions.ts b/packages/core/src/store/actions.ts index 7e41c7f1..5a80c15b 100644 --- a/packages/core/src/store/actions.ts +++ b/packages/core/src/store/actions.ts @@ -427,7 +427,7 @@ export function useActions(state: State, getters: ComputedGetters): Actions { } const updateEdge: Actions['updateEdge'] = (oldEdge, newConnection, shouldReplaceId = true) => - updateEdgeAction(oldEdge, newConnection, state.edges, shouldReplaceId) + updateEdgeAction(oldEdge, newConnection, state.edges, findEdge, shouldReplaceId) const applyNodeChanges: Actions['applyNodeChanges'] = (changes) => applyChanges(changes, state.nodes) diff --git a/packages/core/src/utils/store.ts b/packages/core/src/utils/store.ts index b468745d..5e418e48 100644 --- a/packages/core/src/utils/store.ts +++ b/packages/core/src/utils/store.ts @@ -10,25 +10,34 @@ export function addEdgeToStore(edgeParams: Edge | Connection, edges: Edge[]) { let edge if (isEdge(edgeParams)) { - edge = { ...edgeParams } + edge = edgeParams } else { edge = { ...edgeParams, id: getEdgeId(edgeParams), } as Edge } + edge = parseEdge(edge) + if (connectionExists(edge, edges)) return false + return edge } -export function updateEdgeAction(edge: GraphEdge, newConnection: Connection, edges: GraphEdge[], shouldReplaceId: boolean) { +export function updateEdgeAction( + edge: GraphEdge, + newConnection: Connection, + edges: GraphEdge[], + findEdge: Actions['findEdge'], + shouldReplaceId: boolean, +) { if (!newConnection.source || !newConnection.target) { warn("Can't create new edge. An edge needs a source and a target.") return false } - const foundEdge = edges.find((e) => isGraphEdge(e) && e.id === edge.id) + const foundEdge = findEdge(edge.id) if (!foundEdge) { warn(`The old edge with id=${edge.id} does not exist.`)