diff --git a/web/ce/components/maintenance-mode.tsx b/web/ce/components/maintenance-mode.tsx new file mode 100644 index 00000000000..cab780e47f4 --- /dev/null +++ b/web/ce/components/maintenance-mode.tsx @@ -0,0 +1,5 @@ +"use client"; + +import { FC, Fragment } from "react"; + +export const MaintenanceMode: FC = () => ; diff --git a/web/core/lib/wrappers/instance-wrapper.tsx b/web/core/lib/wrappers/instance-wrapper.tsx index 892838b7ef2..16590723f62 100644 --- a/web/core/lib/wrappers/instance-wrapper.tsx +++ b/web/core/lib/wrappers/instance-wrapper.tsx @@ -6,6 +6,8 @@ import { LogoSpinner } from "@/components/common"; import { InstanceNotReady } from "@/components/instance"; // hooks import { useInstance } from "@/hooks/store"; +// plane web components +import { MaintenanceMode } from "@/plane-web/components/maintenance-mode"; type TInstanceWrapper = { children: ReactNode; @@ -16,9 +18,11 @@ export const InstanceWrapper: FC = observer((props) => { // store const { isLoading, instance, error, fetchInstanceInfo } = useInstance(); - const { isLoading: isInstanceSWRLoading } = useSWR("INSTANCE_INFORMATION", () => fetchInstanceInfo(), { - revalidateOnFocus: false, - }); + const { isLoading: isInstanceSWRLoading, error: instanceSWRError } = useSWR( + "INSTANCE_INFORMATION", + async () => await fetchInstanceInfo(), + { revalidateOnFocus: false } + ); // loading state if ((isLoading || isInstanceSWRLoading) && !instance) @@ -28,6 +32,8 @@ export const InstanceWrapper: FC = observer((props) => { ); + if (instanceSWRError) return ; + // something went wrong while in the request if (error && error?.status === "error") return <>{children}; diff --git a/web/core/store/instance.store.ts b/web/core/store/instance.store.ts index ca813ca173e..b48cb49d728 100644 --- a/web/core/store/instance.store.ts +++ b/web/core/store/instance.store.ts @@ -66,6 +66,7 @@ export class InstanceStore implements IInstanceStore { message: "Failed to fetch instance info", }; }); + throw error; } }; } diff --git a/web/ee/components/maintenance-mode.tsx b/web/ee/components/maintenance-mode.tsx new file mode 100644 index 00000000000..9431b7a3847 --- /dev/null +++ b/web/ee/components/maintenance-mode.tsx @@ -0,0 +1 @@ +export * from "ce/components/maintenance-mode";