import { useState } from "react"; // components import { InstanceSetupEmailCodeForm } from "./email-code-form"; import { InstanceSetupEmailForm } from "./email-form"; import { InstanceSetupPasswordForm } from "./password-form"; import { LatestFeatureBlock } from "components/common"; import { InstanceSetupDone } from "components/instance"; export enum EInstanceSetupSteps { EMAIL = "EMAIL", VERIFY_CODE = "VERIFY_CODE", PASSWORD = "PASSWORD", DONE = "DONE", } export const InstanceSetupFormRoot = () => { // states const [setupStep, setSetupStep] = useState(EInstanceSetupSteps.EMAIL); const [email, setEmail] = useState<string>(""); return ( <> {setupStep === EInstanceSetupSteps.DONE ? ( <InstanceSetupDone /> ) : ( <div className="h-full bg-onboarding-gradient-100 md:w-2/3 sm:w-4/5 px-4 pt-4 rounded-t-md mx-auto shadow-sm border-x border-t border-custom-border-200"> <div className="bg-onboarding-gradient-200 h-full pt-24 pb-56 rounded-t-md overflow-auto"> <div className="mx-auto flex flex-col"> {setupStep === EInstanceSetupSteps.EMAIL && ( <InstanceSetupEmailForm handleNextStep={(email) => { setEmail(email); setSetupStep(EInstanceSetupSteps.VERIFY_CODE); }} /> )} {setupStep === EInstanceSetupSteps.VERIFY_CODE && ( <InstanceSetupEmailCodeForm email={email} handleNextStep={() => { setSetupStep(EInstanceSetupSteps.PASSWORD); }} moveBack={() => { setSetupStep(EInstanceSetupSteps.EMAIL); }} /> )} {setupStep === EInstanceSetupSteps.PASSWORD && ( <InstanceSetupPasswordForm email={email} onNextStep={() => { setSetupStep(EInstanceSetupSteps.DONE); }} resetSteps={() => { setSetupStep(EInstanceSetupSteps.EMAIL); }} /> )} </div> <LatestFeatureBlock /> </div> </div> )} </> ); };