import React, { useState } from "react"; // components import { EmailForm, UniqueCodeForm, PasswordForm, SetPasswordLink, OAuthOptions, OptionalSetPasswordForm, CreatePasswordForm, } from "components/account"; export enum ESignInSteps { EMAIL = "EMAIL", PASSWORD = "PASSWORD", SET_PASSWORD_LINK = "SET_PASSWORD_LINK", UNIQUE_CODE = "UNIQUE_CODE", OPTIONAL_SET_PASSWORD = "OPTIONAL_SET_PASSWORD", CREATE_PASSWORD = "CREATE_PASSWORD", } type Props = { handleSignInRedirection: () => Promise; }; export const SignInRoot: React.FC = (props) => { const { handleSignInRedirection } = props; // states const [signInStep, setSignInStep] = useState(ESignInSteps.EMAIL); const [email, setEmail] = useState(""); return ( <>
{signInStep === ESignInSteps.EMAIL && ( setSignInStep(step)} updateEmail={(newEmail) => setEmail(newEmail)} /> )} {signInStep === ESignInSteps.PASSWORD && ( setEmail(newEmail)} handleStepChange={(step: ESignInSteps) => setSignInStep(step)} handleSignInRedirection={handleSignInRedirection} /> )} {signInStep === ESignInSteps.SET_PASSWORD_LINK && ( setEmail(newEmail)} /> )} {signInStep === ESignInSteps.UNIQUE_CODE && ( setEmail(newEmail)} handleStepChange={(step: ESignInSteps) => setSignInStep(step)} handleSignInRedirection={handleSignInRedirection} /> )} {signInStep === ESignInSteps.OPTIONAL_SET_PASSWORD && ( setSignInStep(step)} handleSignInRedirection={handleSignInRedirection} /> )} {signInStep === ESignInSteps.CREATE_PASSWORD && ( setSignInStep(step)} handleSignInRedirection={handleSignInRedirection} /> )}
{signInStep !== ESignInSteps.OPTIONAL_SET_PASSWORD && ( setEmail(newEmail)} handleStepChange={(step: ESignInSteps) => setSignInStep(step)} handleSignInRedirection={handleSignInRedirection} /> )} ); };