@@ -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,7 +242,10 @@ export function useCollaborativeWorkflow() {
242242 case EDGES_OPERATIONS . BATCH_ADD_EDGES : {
243243 const { edges } = payload
244244 if ( Array . isArray ( edges ) && edges . length > 0 ) {
245- workflowStore . batchAddEdges ( edges )
245+ const newEdges = filterNewEdges ( edges , workflowStore . edges )
246+ if ( newEdges . length > 0 ) {
247+ workflowStore . batchAddEdges ( newEdges )
248+ }
246249 }
247250 break
248251 }
@@ -976,23 +979,26 @@ export function useCollaborativeWorkflow() {
976979
977980 if ( edges . length === 0 ) return false
978981
982+ const newEdges = filterNewEdges ( edges , workflowStore . edges )
983+ if ( newEdges . length === 0 ) return false
984+
979985 const operationId = crypto . randomUUID ( )
980986
981987 addToQueue ( {
982988 id : operationId ,
983989 operation : {
984990 operation : EDGES_OPERATIONS . BATCH_ADD_EDGES ,
985991 target : OPERATION_TARGETS . EDGES ,
986- payload : { edges } ,
992+ payload : { edges : newEdges } ,
987993 } ,
988994 workflowId : activeWorkflowId || '' ,
989995 userId : session ?. user ?. id || 'unknown' ,
990996 } )
991997
992- workflowStore . batchAddEdges ( edges )
998+ workflowStore . batchAddEdges ( newEdges )
993999
9941000 if ( ! options ?. skipUndoRedo ) {
995- edges . forEach ( ( edge ) => undoRedo . recordAddEdge ( edge . id ) )
1001+ newEdges . forEach ( ( edge ) => undoRedo . recordAddEdge ( edge . id ) )
9961002 }
9971003
9981004 return true
0 commit comments