fix(core): avoid adding invalid edges (like null or undefined)

This commit is contained in:
braks
2024-02-05 07:51:12 +01:00
committed by Braks
parent 04658b2c0d
commit aaf106938f
2 changed files with 6 additions and 6 deletions
+4 -4
View File
@@ -448,14 +448,14 @@ export function useActions(
nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges] nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges]
const validEdges = state.isValidConnection const validEdges = state.isValidConnection
? nextEdges.filter((edge) => ? nextEdges.filter((edge) => {
state.isValidConnection!(edge, { return state.isValidConnection?.(edge, {
edges: state.edges, edges: state.edges,
nodes: state.nodes, nodes: state.nodes,
sourceNode: findNode(edge.source)!, sourceNode: findNode(edge.source)!,
targetNode: findNode(edge.target)!, targetNode: findNode(edge.target)!,
}), })
) })
: nextEdges : nextEdges
const changes = validEdges.reduce((edgeChanges, connection) => { const changes = validEdges.reduce((edgeChanges, connection) => {
+2 -2
View File
@@ -16,8 +16,8 @@ export function addEdgeToStore(
triggerError: State['hooks']['error']['trigger'], triggerError: State['hooks']['error']['trigger'],
defaultEdgeOptions?: DefaultEdgeOptions, defaultEdgeOptions?: DefaultEdgeOptions,
): GraphEdge | false { ): GraphEdge | false {
if (!edgeParams.source || !edgeParams.target) { if (!edgeParams || !edgeParams.source || !edgeParams.target) {
triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams as Edge).id)) triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams as undefined | Edge)?.id ?? `[ID UNKNOWN]`))
return false return false
} }