fix(core): avoid adding invalid edges (like null or undefined)
This commit is contained in:
@@ -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) => {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user