diff --git a/src/frontend/src/stores/flowsManagerStore.ts b/src/frontend/src/stores/flowsManagerStore.ts index 020a3e796..9471889c3 100644 --- a/src/frontend/src/stores/flowsManagerStore.ts +++ b/src/frontend/src/stores/flowsManagerStore.ts @@ -104,7 +104,11 @@ const useFlowsManagerStore = create((set, get) => ({ ); } }, - saveFlow: debounce((flow: FlowType, silent?: boolean) => { + saveFlow: (flow: FlowType, silent?: boolean) => { + set({ saveLoading: true }); // set saveLoading true immediately + return get().saveFlowDebounce(flow, silent); // call the debounced function directly + }, + saveFlowDebounce: debounce((flow: FlowType, silent?: boolean) => { set({ saveLoading: true }); return new Promise((resolve, reject) => { updateFlowInDatabase(flow) diff --git a/src/frontend/src/types/zustand/flowsManager/index.ts b/src/frontend/src/types/zustand/flowsManager/index.ts index fa0747e94..817ddd3d1 100644 --- a/src/frontend/src/types/zustand/flowsManager/index.ts +++ b/src/frontend/src/types/zustand/flowsManager/index.ts @@ -12,6 +12,10 @@ export type FlowsManagerStoreType = { setIsLoading: (isLoading: boolean) => void; refreshFlows: () => Promise; saveFlow: (flow: FlowType, silent?: boolean) => Promise | undefined; + saveFlowDebounce: ( + flow: FlowType, + silent?: boolean + ) => Promise | undefined; autoSaveCurrentFlow: ( nodes: Node[], edges: Edge[],