@@ -307,25 +307,27 @@ export function useActions(
307
307
return elementSelectionHandler ( [ ] , false )
308
308
}
309
309
310
- const { changedNodes , changedEdges } = elements . reduce (
311
- ( acc , curr ) => {
310
+ const changes = elements . reduce (
311
+ ( changes , curr ) => {
312
312
const selectionChange = createSelectionChange ( curr . id , false )
313
+
313
314
if ( isNode ( curr ) ) {
314
- acc . changedNodes . push ( selectionChange )
315
+ changes . nodes . push ( selectionChange )
315
316
} else {
316
- acc . changedEdges . push ( selectionChange )
317
+ changes . edges . push ( selectionChange )
317
318
}
318
319
319
- return acc
320
+ return changes
320
321
} ,
321
- { changedNodes : [ ] as NodeSelectionChange [ ] , changedEdges : [ ] as EdgeSelectionChange [ ] } ,
322
+ { nodes : [ ] as NodeSelectionChange [ ] , edges : [ ] as EdgeSelectionChange [ ] } ,
322
323
)
323
324
324
- if ( changedNodes . length ) {
325
- state . hooks . nodesChange . trigger ( changedNodes )
325
+ if ( changes . nodes . length ) {
326
+ state . hooks . nodesChange . trigger ( changes . nodes )
326
327
}
327
- if ( changedEdges . length ) {
328
- state . hooks . edgesChange . trigger ( changedEdges )
328
+
329
+ if ( changes . edges . length ) {
330
+ state . hooks . edgesChange . trigger ( changes . edges )
329
331
}
330
332
}
331
333
@@ -456,7 +458,7 @@ export function useActions(
456
458
)
457
459
: nextEdges
458
460
459
- const changes = validEdges . reduce ( ( acc , param ) => {
461
+ const changes = validEdges . reduce ( ( edgeChanges , param ) => {
460
462
const edge = addEdgeToStore (
461
463
{
462
464
...param ,
@@ -475,21 +477,23 @@ export function useActions(
475
477
476
478
if ( missingSource && missingTarget ) {
477
479
state . hooks . error . trigger ( new VueFlowError ( ErrorCode . EDGE_SOURCE_TARGET_MISSING , edge . id , edge . source , edge . target ) )
478
- } else {
479
- if ( missingSource ) {
480
- state . hooks . error . trigger ( new VueFlowError ( ErrorCode . EDGE_SOURCE_MISSING , edge . id , edge . source ) )
481
- }
482
480
483
- if ( missingTarget ) {
484
- state . hooks . error . trigger ( new VueFlowError ( ErrorCode . EDGE_TARGET_MISSING , edge . id , edge . target ) )
485
- }
481
+ return edgeChanges
486
482
}
487
483
488
- if ( missingSource || missingTarget ) {
489
- return acc
484
+ if ( missingSource ) {
485
+ state . hooks . error . trigger ( new VueFlowError ( ErrorCode . EDGE_SOURCE_MISSING , edge . id , edge . source ) )
486
+
487
+ return edgeChanges
490
488
}
491
489
492
- acc . push (
490
+ if ( missingTarget ) {
491
+ state . hooks . error . trigger ( new VueFlowError ( ErrorCode . EDGE_TARGET_MISSING , edge . id , edge . target ) )
492
+
493
+ return edgeChanges
494
+ }
495
+
496
+ edgeChanges . push (
493
497
createAdditionChange < GraphEdge > ( {
494
498
...edge ,
495
499
sourceNode,
@@ -498,7 +502,7 @@ export function useActions(
498
502
)
499
503
}
500
504
501
- return acc
505
+ return edgeChanges
502
506
} , [ ] as EdgeChange [ ] )
503
507
504
508
if ( changes . length ) {
@@ -514,12 +518,7 @@ export function useActions(
514
518
const edgeChanges : EdgeRemoveChange [ ] = [ ]
515
519
516
520
function createEdgeRemovalChanges ( nodes : Node [ ] ) {
517
- const connections = getConnectedEdges ( nodes , state . edges ) . filter ( ( edge ) => {
518
- if ( isDef ( edge . deletable ) ) {
519
- return edge . deletable
520
- }
521
- return true
522
- } )
521
+ const connections = getConnectedEdges ( nodes , state . edges ) . filter ( ( edge ) => ( isDef ( edge . deletable ) ? edge . deletable : true ) )
523
522
524
523
edgeChanges . push ( ...connections . map ( ( connection ) => createRemoveChange ( connection . id ) ) )
525
524
}
0 commit comments