/** * @packageDocumentation * @module RegistrationWorkflowContext */ export type ScreenData = { Eula: { accepted: boolean; }; CreateAccount: { emailAddress: string; }; VerifyCode: { code: string; }; CreatePassword: { password: string; confirmPassword: string; }; AccountDetails: { firstName: string; lastName: string; extra?: Record; }; Other?: Record>; }; export type IndividualScreenData = { screenId: 'Eula'; values: ScreenData['Eula']; isAccountExist?: boolean; } | { screenId: 'CreateAccount'; values: ScreenData['CreateAccount']; isAccountExist?: boolean; } | { screenId: 'VerifyCode'; values: ScreenData['VerifyCode']; isAccountExist?: boolean; } | { screenId: 'CreatePassword'; values: ScreenData['CreatePassword']; isAccountExist?: boolean; } | { screenId: 'AccountDetails'; values: ScreenData['AccountDetails']; isAccountExist?: boolean; } | { screenId: string; values: Record; isAccountExist?: boolean; }; export type RegistrationWorkflowContextProps = { currentScreen: number; totalScreens: number; nextScreen: (data: IndividualScreenData) => Promise | undefined; previousScreen: (data: IndividualScreenData) => void; screenData: ScreenData; updateScreenData: (data: IndividualScreenData) => void; isInviteRegistration?: boolean; };