@@ -22,7 +22,7 @@ import { useUndoRedoStore } from '@/stores/undo-redo'
2222import { useWorkflowDiffStore } from '@/stores/workflow-diff/store'
2323import { useWorkflowRegistry } from '@/stores/workflows/registry/store'
2424import { useSubBlockStore } from '@/stores/workflows/subblock/store'
25- import { mergeSubblockState , normalizeName } from '@/stores/workflows/utils'
25+ import { filterNewEdges , mergeSubblockState , normalizeName } from '@/stores/workflows/utils'
2626import { useWorkflowStore } from '@/stores/workflows/workflow/store'
2727import type { BlockState , Loop , Parallel , Position } from '@/stores/workflows/workflow/types'
2828
@@ -242,17 +242,7 @@ export function useCollaborativeWorkflow() {
242242 case EDGES_OPERATIONS . BATCH_ADD_EDGES : {
243243 const { edges } = payload
244244 if ( Array . isArray ( edges ) && edges . length > 0 ) {
245- const currentEdges = workflowStore . edges
246- const newEdges = edges . filter ( ( edge : Edge ) => {
247- if ( edge . source === edge . target ) return false
248- return ! currentEdges . some (
249- ( e ) =>
250- e . source === edge . source &&
251- e . sourceHandle === edge . sourceHandle &&
252- e . target === edge . target &&
253- e . targetHandle === edge . targetHandle
254- )
255- } )
245+ const newEdges = filterNewEdges ( edges , workflowStore . edges )
256246 if ( newEdges . length > 0 ) {
257247 workflowStore . batchAddEdges ( newEdges )
258248 }
@@ -989,22 +979,8 @@ export function useCollaborativeWorkflow() {
989979
990980 if ( edges . length === 0 ) return false
991981
992- const currentEdges = workflowStore . edges
993- const newEdges = edges . filter ( ( edge ) => {
994- if ( edge . source === edge . target ) return false
995- return ! currentEdges . some (
996- ( e ) =>
997- e . source === edge . source &&
998- e . sourceHandle === edge . sourceHandle &&
999- e . target === edge . target &&
1000- e . targetHandle === edge . targetHandle
1001- )
1002- } )
1003-
1004- if ( newEdges . length === 0 ) {
1005- logger . debug ( 'Skipping batch add edges - all edges already exist' )
1006- return false
1007- }
982+ const newEdges = filterNewEdges ( edges , workflowStore . edges )
983+ if ( newEdges . length === 0 ) return false
1008984
1009985 const operationId = crypto . randomUUID ( )
1010986
0 commit comments