diff --git a/frontend/src/lib/components/FlowStatusViewerInner.svelte b/frontend/src/lib/components/FlowStatusViewerInner.svelte index 8981847d2b..98c6e223eb 100644 --- a/frontend/src/lib/components/FlowStatusViewerInner.svelte +++ b/frontend/src/lib/components/FlowStatusViewerInner.svelte @@ -608,28 +608,36 @@ if (clicked && state?.selectedForloop) { await globalRefreshes?.[modId]?.(true, state.selectedForloop) } - if (state) { - let manualOnce = state.selectedForLoopSetManually - if ( - clicked || - (!manualOnce && - (state == undefined || !isForloop || j >= (state.selectedForloopIndex ?? -1))) - ) { - let setManually = clicked || manualOnce + let manualOnce = state?.selectedForLoopSetManually + if ( + clicked || + (!manualOnce && + (state == undefined || !isForloop || j >= (state.selectedForloopIndex ?? -1))) + ) { + let setManually = clicked || manualOnce - let newState = { - ...(state ?? {}), - selectedForloop: id, - selectedForloopIndex: j, - selectedForLoopSetManually: setManually - } - if (!deepEqual(state, newState)) { - globalState?.update((topLevelModuleStates) => { - topLevelModuleStates[modId] = newState - return topLevelModuleStates - // clicked && callGlobRefresh(modId, {index: j, job: id, selectedManually: setManually ?? false}) - }) - } + let newState = { + ...(state ?? {}), + selectedForloop: id, + selectedForloopIndex: j, + selectedForLoopSetManually: setManually + } + + const selectedNotEqual = + id != state?.selectedForloop || + j != state?.selectedForloopIndex || + setManually != state?.selectedForLoopSetManually + if (selectedNotEqual) { + console.log('not equal') + globalState?.update((topLevelModuleStates) => { + topLevelModuleStates[modId] = { + type: 'WaitingForPriorSteps', + args: {}, + ...newState + } + return topLevelModuleStates + // clicked && callGlobRefresh(modId, {index: j, job: id, selectedManually: setManually ?? false}) + }) } } diff --git a/frontend/src/lib/components/graph/FlowGraphV2.svelte b/frontend/src/lib/components/graph/FlowGraphV2.svelte index 868dccce2c..2e46fb309c 100644 --- a/frontend/src/lib/components/graph/FlowGraphV2.svelte +++ b/frontend/src/lib/components/graph/FlowGraphV2.svelte @@ -219,17 +219,19 @@ } } - // let lastModules = structuredClone(modules) - // $: modules && onModulesChange2(modules) + let lastModules = structuredClone(modules) + let newModules = modules + $: modules && onModulesChange2(modules) - // function onModulesChange2(modules) { - // if (!deepEqual(modules, lastModules) || true) { - // lastModules = structuredClone(modules) - // } - // } + function onModulesChange2(modules) { + if (!deepEqual(modules, lastModules)) { + lastModules = structuredClone(modules) + newModules = modules + } + } $: graph = graphBuilder( - modules, + newModules, { disableAi, insertable, diff --git a/frontend/src/lib/components/graph/graphBuilder.ts b/frontend/src/lib/components/graph/graphBuilder.ts index a8461971cd..652c645da2 100644 --- a/frontend/src/lib/components/graph/graphBuilder.ts +++ b/frontend/src/lib/components/graph/graphBuilder.ts @@ -54,6 +54,7 @@ export function graphBuilder( edges: Edge[] error?: string | undefined } { + console.debug('Building graph') const nodes: Node[] = [] const edges: Edge[] = [] try {