// Boolean toggles to determine which auth types are allowed const allowOauth = true; const allowEmail = true; const allowPassword = true; // Boolean toggle to determine whether auth interface should route through server or client // (Currently set to false because screen sometimes flickers with server redirects) const allowServerRedirect = false; // Check that at least one of allowPassword and allowEmail is true if (!allowPassword && !allowEmail) throw new Error('At least one of allowPassword and allowEmail must be true'); export const getAuthTypes = () => { return { allowOauth, allowEmail, allowPassword }; }; export const getViewTypes = () => { // Define the valid view types let viewTypes: string[] = []; if (allowEmail) { viewTypes = [...viewTypes, 'email_signin']; } if (allowPassword) { viewTypes = [ ...viewTypes, 'password_signin', 'forgot_password', 'update_password', 'signup' ]; } return viewTypes; }; export const getDefaultSignInView = (preferredSignInView: string | null) => { // Define the default sign in view let defaultView = allowPassword ? 'password_signin' : 'email_signin'; if (preferredSignInView && getViewTypes().includes(preferredSignInView)) { defaultView = preferredSignInView; } return defaultView; }; export const getRedirectMethod = () => { return allowServerRedirect ? 'server' : 'client'; };