((set, get) => ({
+ healthCheckMaxRetries: 5,
+ setHealthCheckMaxRetries: (healthCheckMaxRetries: number) =>
+ set({ healthCheckMaxRetries }),
autoSaving: true,
setAutoSaving: (autoSaving: boolean) => set({ autoSaving }),
autoSavingInterval: SAVE_DEBOUNCE_TIME,
diff --git a/src/frontend/src/stores/utilityStore.ts b/src/frontend/src/stores/utilityStore.ts
index 24889bc04..fc8816bd6 100644
--- a/src/frontend/src/stores/utilityStore.ts
+++ b/src/frontend/src/stores/utilityStore.ts
@@ -1,6 +1,7 @@
+import { UtilityStoreType } from "@/types/zustand/utility";
import { create } from "zustand";
-export const useUtilityStore = create
((set, get) => ({
+export const useUtilityStore = create((set, get) => ({
selectedItems: [],
setSelectedItems: (itemId) => {
if (get().selectedItems.includes(itemId)) {
@@ -11,4 +12,7 @@ export const useUtilityStore = create((set, get) => ({
set({ selectedItems: get().selectedItems.concat(itemId) });
}
},
+ healthCheckTimeout: null,
+ setHealthCheckTimeout: (timeout: string | null) =>
+ set({ healthCheckTimeout: timeout }),
}));
diff --git a/src/frontend/src/types/factory/axios-error-503.ts b/src/frontend/src/types/factory/axios-error-503.ts
new file mode 100644
index 000000000..b61426b04
--- /dev/null
+++ b/src/frontend/src/types/factory/axios-error-503.ts
@@ -0,0 +1,23 @@
+import { AxiosError, AxiosHeaders } from "axios";
+
+export const createNewError503 = (): AxiosError => {
+ const headers = new AxiosHeaders({
+ "Content-Type": "application/json",
+ });
+
+ const config = {
+ url: "/",
+ method: "get",
+ headers: headers,
+ };
+
+ const error = new AxiosError("Server Busy", "ECONNABORTED", config, null, {
+ status: 503,
+ statusText: "Service Unavailable",
+ data: "Server is currently busy, please try again later.",
+ headers: {},
+ config: config,
+ });
+
+ return error;
+};
diff --git a/src/frontend/src/types/zustand/flowsManager/index.ts b/src/frontend/src/types/zustand/flowsManager/index.ts
index 97b389b86..fe85b3d8d 100644
--- a/src/frontend/src/types/zustand/flowsManager/index.ts
+++ b/src/frontend/src/types/zustand/flowsManager/index.ts
@@ -24,6 +24,8 @@ export type FlowsManagerStoreType = {
setSelectedFlowsComponentsCards: (selected: string[]) => void;
autoSavingInterval: number;
setAutoSavingInterval: (autoSavingInterval: number) => void;
+ healthCheckMaxRetries: number;
+ setHealthCheckMaxRetries: (healthCheckMaxRetries: number) => void;
};
export type UseUndoRedoOptions = {
diff --git a/src/frontend/src/types/zustand/utility/index.ts b/src/frontend/src/types/zustand/utility/index.ts
new file mode 100644
index 000000000..f16a08021
--- /dev/null
+++ b/src/frontend/src/types/zustand/utility/index.ts
@@ -0,0 +1,6 @@
+export type UtilityStoreType = {
+ selectedItems: any[];
+ setSelectedItems: (itemId: any) => void;
+ healthCheckTimeout: string | null;
+ setHealthCheckTimeout: (timeout: string | null) => void;
+};