@@ -376,38 +376,24 @@ export function SocketProvider({ children, user }: SocketProviderProps) {
376376 )
377377 } )
378378
379- // Merge workflow store with server state (do not drop optimistic local state)
380- const existing = useWorkflowStore . getState ( )
381- const mergedBlocks = {
382- ...( existing . blocks || { } ) ,
383- ...( workflowState . blocks || { } ) ,
384- }
385- const edgeById = new Map < string , any > ( )
386- ; ( existing . edges || [ ] ) . forEach ( ( e : any ) => edgeById . set ( e . id , e ) )
387- ; ( workflowState . edges || [ ] ) . forEach ( ( e : any ) => edgeById . set ( e . id , e ) )
388- const mergedEdges = Array . from ( edgeById . values ( ) )
379+ // Replace local workflow store with authoritative server state
389380 useWorkflowStore . setState ( {
390- blocks : mergedBlocks ,
391- edges : mergedEdges ,
392- loops : workflowState . loops || existing . loops || { } ,
393- parallels : workflowState . parallels || existing . parallels || { } ,
394- lastSaved : workflowState . lastSaved || existing . lastSaved || Date . now ( ) ,
395- isDeployed : workflowState . isDeployed ?? existing . isDeployed ?? false ,
396- deployedAt : workflowState . deployedAt || existing . deployedAt ,
397- deploymentStatuses :
398- workflowState . deploymentStatuses || existing . deploymentStatuses || { } ,
399- hasActiveWebhook :
400- workflowState . hasActiveWebhook ?? existing . hasActiveWebhook ?? false ,
381+ blocks : workflowState . blocks || { } ,
382+ edges : workflowState . edges || [ ] ,
383+ loops : workflowState . loops || { } ,
384+ parallels : workflowState . parallels || { } ,
385+ lastSaved : workflowState . lastSaved || Date . now ( ) ,
386+ isDeployed : workflowState . isDeployed ?? false ,
387+ deployedAt : workflowState . deployedAt ,
388+ deploymentStatuses : workflowState . deploymentStatuses || { } ,
389+ hasActiveWebhook : workflowState . hasActiveWebhook ?? false ,
401390 } )
402391
403- // Merge subblock store values per workflow
392+ // Replace subblock store values for this workflow
404393 useSubBlockStore . setState ( ( state : any ) => ( {
405394 workflowValues : {
406395 ...state . workflowValues ,
407- [ data . workflowId ] : {
408- ...( state . workflowValues ?. [ data . workflowId ] || { } ) ,
409- ...subblockValues ,
410- } ,
396+ [ data . workflowId ] : subblockValues ,
411397 } ,
412398 } ) )
413399
@@ -518,36 +504,24 @@ export function SocketProvider({ children, user }: SocketProviderProps) {
518504 } )
519505 } )
520506
521- const existing = useWorkflowStore . getState ( )
522- const mergedBlocks = {
523- ...( existing . blocks || { } ) ,
524- ...( workflowState . blocks || { } ) ,
525- }
526- const edgeById = new Map < string , any > ( )
527- ; ( existing . edges || [ ] ) . forEach ( ( e : any ) => edgeById . set ( e . id , e ) )
528- ; ( workflowState . edges || [ ] ) . forEach ( ( e : any ) => edgeById . set ( e . id , e ) )
529- const mergedEdges = Array . from ( edgeById . values ( ) )
507+ // Replace local workflow store with authoritative server state
530508 useWorkflowStore . setState ( {
531- blocks : mergedBlocks ,
532- edges : mergedEdges ,
533- loops : workflowState . loops || existing . loops || { } ,
534- parallels : workflowState . parallels || existing . parallels || { } ,
535- lastSaved : workflowState . lastSaved || existing . lastSaved || Date . now ( ) ,
536- isDeployed : workflowState . isDeployed ?? existing . isDeployed ?? false ,
537- deployedAt : workflowState . deployedAt || existing . deployedAt ,
538- deploymentStatuses :
539- workflowState . deploymentStatuses || existing . deploymentStatuses || { } ,
540- hasActiveWebhook :
541- workflowState . hasActiveWebhook ?? existing . hasActiveWebhook ?? false ,
509+ blocks : workflowState . blocks || { } ,
510+ edges : workflowState . edges || [ ] ,
511+ loops : workflowState . loops || { } ,
512+ parallels : workflowState . parallels || { } ,
513+ lastSaved : workflowState . lastSaved || Date . now ( ) ,
514+ isDeployed : workflowState . isDeployed ?? false ,
515+ deployedAt : workflowState . deployedAt ,
516+ deploymentStatuses : workflowState . deploymentStatuses || { } ,
517+ hasActiveWebhook : workflowState . hasActiveWebhook ?? false ,
542518 } )
543519
520+ // Replace subblock store values for this workflow
544521 useSubBlockStore . setState ( ( state : any ) => ( {
545522 workflowValues : {
546523 ...state . workflowValues ,
547- [ workflowData . id ] : {
548- ...( state . workflowValues ?. [ workflowData . id ] || { } ) ,
549- ...subblockValues ,
550- } ,
524+ [ workflowData . id ] : subblockValues ,
551525 } ,
552526 } ) )
553527
0 commit comments