From aaf106938fc9162fc9edf6ec5ad08b786cf5f9b3 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Sun, 4 Feb 2024 18:11:57 +0100 Subject: [PATCH] fix(core): avoid adding invalid edges (like null or undefined) --- packages/core/src/store/actions.ts | 8 ++++---- packages/core/src/utils/store.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/src/store/actions.ts b/packages/core/src/store/actions.ts index a1536812..4aead694 100644 --- a/packages/core/src/store/actions.ts +++ b/packages/core/src/store/actions.ts @@ -448,14 +448,14 @@ export function useActions( nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges] const validEdges = state.isValidConnection - ? nextEdges.filter((edge) => - state.isValidConnection!(edge, { + ? nextEdges.filter((edge) => { + return state.isValidConnection?.(edge, { edges: state.edges, nodes: state.nodes, sourceNode: findNode(edge.source)!, targetNode: findNode(edge.target)!, - }), - ) + }) + }) : nextEdges const changes = validEdges.reduce((edgeChanges, connection) => { diff --git a/packages/core/src/utils/store.ts b/packages/core/src/utils/store.ts index ae2c6dd9..24d645fe 100644 --- a/packages/core/src/utils/store.ts +++ b/packages/core/src/utils/store.ts @@ -16,8 +16,8 @@ export function addEdgeToStore( triggerError: State['hooks']['error']['trigger'], defaultEdgeOptions?: DefaultEdgeOptions, ): GraphEdge | false { - if (!edgeParams.source || !edgeParams.target) { - triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams as Edge).id)) + if (!edgeParams || !edgeParams.source || !edgeParams.target) { + triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams as undefined | Edge)?.id ?? `[ID UNKNOWN]`)) return false }