@@ -266,14 +266,36 @@ export function ControlBar({ hasValidationErrors = false }: ControlBarProps) {
266266 activeWorkflowId ? state . workflowValues [ activeWorkflowId ] : null
267267 )
268268
269+ const [ blockStructureVersion , setBlockStructureVersion ] = useState ( 0 )
270+ const [ edgeStructureVersion , setEdgeStructureVersion ] = useState ( 0 )
271+ const [ subBlockStructureVersion , setSubBlockStructureVersion ] = useState ( 0 )
272+
273+ useEffect ( ( ) => {
274+ setBlockStructureVersion ( ( version ) => version + 1 )
275+ } , [ currentBlocks ] )
276+
277+ useEffect ( ( ) => {
278+ setEdgeStructureVersion ( ( version ) => version + 1 )
279+ } , [ currentEdges ] )
280+
281+ useEffect ( ( ) => {
282+ setSubBlockStructureVersion ( ( version ) => version + 1 )
283+ } , [ subBlockValues ] )
284+
285+ useEffect ( ( ) => {
286+ setBlockStructureVersion ( 0 )
287+ setEdgeStructureVersion ( 0 )
288+ setSubBlockStructureVersion ( 0 )
289+ } , [ activeWorkflowId ] )
290+
269291 const statusCheckTrigger = useMemo ( ( ) => {
270292 return JSON . stringify ( {
271- blocks : Object . keys ( currentBlocks || { } ) . length ,
272- edges : currentEdges ?. length || 0 ,
273- subBlocks : Object . keys ( subBlockValues || { } ) . length ,
274- timestamp : Date . now ( ) ,
293+ lastSaved : lastSaved ?? 0 ,
294+ blockVersion : blockStructureVersion ,
295+ edgeVersion : edgeStructureVersion ,
296+ subBlockVersion : subBlockStructureVersion ,
275297 } )
276- } , [ currentBlocks , currentEdges , subBlockValues ] )
298+ } , [ lastSaved , blockStructureVersion , edgeStructureVersion , subBlockStructureVersion ] )
277299
278300 const debouncedStatusCheckTrigger = useDebounce ( statusCheckTrigger , 500 )
279301
0 commit comments