import { FC, ReactNode, useState } from "react"; import { observer } from "mobx-react-lite"; import useSWR from "swr"; // ui import { Spinner } from "@plane/ui"; // components import { InstanceNotReady } from "@/components/instance"; // hooks import { useMobxStore } from "@/lib/mobx/store-provider"; type TInstanceLayout = { children: ReactNode; }; const InstanceLayout: FC = observer((props) => { const { children } = props; // store const { instanceStore: { isLoading, instance, error, fetchInstanceInfo }, } = useMobxStore(); // states const [isGodModeEnabled, setIsGodModeEnabled] = useState(false); const handleGodModeStateChange = (state: boolean) => setIsGodModeEnabled(state); useSWR("INSTANCE_INFORMATION", () => fetchInstanceInfo(), { revalidateOnFocus: false, }); // loading state if (isLoading) return (
); // something went wrong while in the request if (error && error?.status === "error") return (
Something went wrong. please try again later
); // checking if the instance is activated or not if (error && !error?.data?.is_activated) return ; // instance is not ready and setup is not done if (instance?.instance?.is_setup_done === false) // if (isGodModeEnabled) return ; return ; return <>{children}; }); export default InstanceLayout;