Core state
Read deployment, client, session, user, and navigation state from the shared hook layer.
useDeployment()
useDeployment() is the root hook for the shared client layer. It reads the deployment context created by <DeploymentProvider /> and gives the rest of the client hooks their deployment-aware behavior.
export default function DeploymentDebug() { const { deployment, loading, adapter } = useDeployment(); if (loading) { return <div>Loading deployment...</div>; } return ( <div> <p>{deployment.ui_settings.app_name}</p> <p>{deployment.frontend_host}</p> <p>{adapter.useNavigate() ? 'Adapter ready' : 'No adapter'}</p> </div> );}›loading: boolean;
loading: boolean;›deployment: Deployment | null;
deployment: Deployment | null;›backend_host?: string | undefined;
backend_host?: string | undefined;›frontend_host?: string | undefined;
frontend_host?: string | undefined;›mode?: "production" | "staging" | undefined;
mode?: "production" | "staging" | undefined;›auth_settings?: AuthSettings | undefined;
auth_settings?: AuthSettings | undefined;›first_factor?: FirstFactor | undefined;
first_factor?: FirstFactor | undefined;›second_factor_policy?: SecondFactorPolicy | undefined;
second_factor_policy?: SecondFactorPolicy | undefined;›multi_session_support?: MultiSessionSupport | undefined;
multi_session_support?: MultiSessionSupport | undefined;›enabled?: boolean | undefined;
enabled?: boolean | undefined;›max_accounts_per_session?: number | undefined;
max_accounts_per_session?: number | undefined;›passkey?: PasskeySettings | undefined;
passkey?: PasskeySettings | undefined;›enabled?: boolean | undefined;
enabled?: boolean | undefined;›prompt_registration_on_auth?: boolean | undefined;
prompt_registration_on_auth?: boolean | undefined;›b2b_settings?: B2BSettings | undefined;
b2b_settings?: B2BSettings | undefined;›organizations_enabled?: boolean | undefined;
organizations_enabled?: boolean | undefined;›workspaces_enabled?: boolean | undefined;
workspaces_enabled?: boolean | undefined;›allow_users_to_create_orgs?: boolean | undefined;
allow_users_to_create_orgs?: boolean | undefined;›custom_org_role_enabled?: boolean | undefined;
custom_org_role_enabled?: boolean | undefined;›custom_workspace_role_enabled?: boolean | undefined;
custom_workspace_role_enabled?: boolean | undefined;›enterprise_sso_enabled?: boolean | undefined;
enterprise_sso_enabled?: boolean | undefined;›ui_settings?: DeploymentUISettings | undefined;
ui_settings?: DeploymentUISettings | undefined;›deployment_id?: number | undefined;
deployment_id?: number | undefined;›app_name?: string | undefined;
app_name?: string | undefined;›privacy_policy_url?: string | undefined;
privacy_policy_url?: string | undefined;›tos_page_url?: string | undefined;
tos_page_url?: string | undefined;›sign_in_page_url?: string | undefined;
sign_in_page_url?: string | undefined;›sign_up_page_url?: string | undefined;
sign_up_page_url?: string | undefined;›waitlist_page_url?: string | undefined;
waitlist_page_url?: string | undefined;›support_page_url?: string | undefined;
support_page_url?: string | undefined;›after_logo_click_url?: string | undefined;
after_logo_click_url?: string | undefined;›user_profile_url?: string | undefined;
user_profile_url?: string | undefined;›organization_profile_url?: string | undefined;
organization_profile_url?: string | undefined;›create_organization_url?: string | undefined;
create_organization_url?: string | undefined;›after_sign_out_one_page_url?: string | undefined;
after_sign_out_one_page_url?: string | undefined;›after_sign_out_all_page_url?: string | undefined;
after_sign_out_all_page_url?: string | undefined;›after_signup_redirect_url?: string | undefined;
after_signup_redirect_url?: string | undefined;›after_signin_redirect_url?: string | undefined;
after_signin_redirect_url?: string | undefined;›after_create_organization_redirect_url?: string | undefined;
after_create_organization_redirect_url?: string | undefined;›favicon_image_url?: string | undefined;
favicon_image_url?: string | undefined;›default_user_profile_image_url?: string | undefined;
default_user_profile_image_url?: string | undefined;›default_organization_profile_image_url?: string | undefined;
default_organization_profile_image_url?: string | undefined;›default_workspace_profile_image_url?: string | undefined;
default_workspace_profile_image_url?: string | undefined;›use_initials_for_user_profile_image?: boolean | undefined;
use_initials_for_user_profile_image?: boolean | undefined;›use_initials_for_organization_profile_image?: boolean | undefined;
use_initials_for_organization_profile_image?: boolean | undefined;›logo_image_url?: string | undefined;
logo_image_url?: string | undefined;›signup_terms_statement?: string | undefined;
signup_terms_statement?: string | undefined;›signup_terms_statement_shown?: boolean | undefined;
signup_terms_statement_shown?: boolean | undefined;›light_mode_settings?: LightModeSettings | undefined;
light_mode_settings?: LightModeSettings | undefined;›primary_color?: string | undefined;
primary_color?: string | undefined;›background_color?: string | undefined;
background_color?: string | undefined;›text_color?: string | undefined;
text_color?: string | undefined;›token_overrides?: UITokenOverrides | undefined;
token_overrides?: UITokenOverrides | undefined;›space_unit?: string | undefined;
space_unit?: string | undefined;›card?: string | undefined;
card?: string | undefined;›card_foreground?: string | undefined;
card_foreground?: string | undefined;›popover?: string | undefined;
popover?: string | undefined;›popover_foreground?: string | undefined;
popover_foreground?: string | undefined;›primary_foreground?: string | undefined;
primary_foreground?: string | undefined;›secondary?: string | undefined;
secondary?: string | undefined;›secondary_foreground?: string | undefined;
secondary_foreground?: string | undefined;›accent?: string | undefined;
accent?: string | undefined;›accent_foreground?: string | undefined;
accent_foreground?: string | undefined;›ring?: string | undefined;
ring?: string | undefined;›foreground?: string | undefined;
foreground?: string | undefined;›foreground_inverse?: string | undefined;
foreground_inverse?: string | undefined;›secondary_text?: string | undefined;
secondary_text?: string | undefined;›muted?: string | undefined;
muted?: string | undefined;›border?: string | undefined;
border?: string | undefined;›border_hover?: string | undefined;
border_hover?: string | undefined;›divider?: string | undefined;
divider?: string | undefined;›input_background?: string | undefined;
input_background?: string | undefined;›input_border?: string | undefined;
input_border?: string | undefined;›input_focus_border?: string | undefined;
input_focus_border?: string | undefined;›background_subtle?: string | undefined;
background_subtle?: string | undefined;›background_hover?: string | undefined;
background_hover?: string | undefined;›primary_hover?: string | undefined;
primary_hover?: string | undefined;›error?: string | undefined;
error?: string | undefined;›error_background?: string | undefined;
error_background?: string | undefined;›error_border?: string | undefined;
error_border?: string | undefined;›warning?: string | undefined;
warning?: string | undefined;›warning_background?: string | undefined;
warning_background?: string | undefined;›warning_border?: string | undefined;
warning_border?: string | undefined;›warning_text?: string | undefined;
warning_text?: string | undefined;›success?: string | undefined;
success?: string | undefined;›success_background?: string | undefined;
success_background?: string | undefined;›success_border?: string | undefined;
success_border?: string | undefined;›info?: string | undefined;
info?: string | undefined;›info_background?: string | undefined;
info_background?: string | undefined;›radius_md?: string | undefined;
radius_md?: string | undefined;›radius_lg?: string | undefined;
radius_lg?: string | undefined;›radius_xl?: string | undefined;
radius_xl?: string | undefined;›radius_2xl?: string | undefined;
radius_2xl?: string | undefined;›radius_2xs?: string | undefined;
radius_2xs?: string | undefined;›radius_xs?: string | undefined;
radius_xs?: string | undefined;›radius_full?: string | undefined;
radius_full?: string | undefined;›border_width_thin?: string | undefined;
border_width_thin?: string | undefined;›border_width_regular?: string | undefined;
border_width_regular?: string | undefined;›scrollbar_track?: string | undefined;
scrollbar_track?: string | undefined;›scrollbar_thumb?: string | undefined;
scrollbar_thumb?: string | undefined;›scrollbar_thumb_hover?: string | undefined;
scrollbar_thumb_hover?: string | undefined;›shadow_color?: string | undefined;
shadow_color?: string | undefined;›shadow_light_color?: string | undefined;
shadow_light_color?: string | undefined;›shadow_medium_color?: string | undefined;
shadow_medium_color?: string | undefined;›success_shadow?: string | undefined;
success_shadow?: string | undefined;›success_background_light?: string | undefined;
success_background_light?: string | undefined;›button_ripple?: string | undefined;
button_ripple?: string | undefined;›dialog_backdrop?: string | undefined;
dialog_backdrop?: string | undefined;›space_0u?: string | undefined;
space_0u?: string | undefined;›space_1u?: string | undefined;
space_1u?: string | undefined;›space_2u?: string | undefined;
space_2u?: string | undefined;›space_3u?: string | undefined;
space_3u?: string | undefined;›space_4u?: string | undefined;
space_4u?: string | undefined;›space_5u?: string | undefined;
space_5u?: string | undefined;›space_6u?: string | undefined;
space_6u?: string | undefined;›space_7u?: string | undefined;
space_7u?: string | undefined;›space_8u?: string | undefined;
space_8u?: string | undefined;›space_10u?: string | undefined;
space_10u?: string | undefined;›space_12u?: string | undefined;
space_12u?: string | undefined;›space_14u?: string | undefined;
space_14u?: string | undefined;›space_16u?: string | undefined;
space_16u?: string | undefined;›space_24u?: string | undefined;
space_24u?: string | undefined;›font_size_2xs?: string | undefined;
font_size_2xs?: string | undefined;›font_size_xs?: string | undefined;
font_size_xs?: string | undefined;›font_size_sm?: string | undefined;
font_size_sm?: string | undefined;›font_size_md?: string | undefined;
font_size_md?: string | undefined;›font_size_lg?: string | undefined;
font_size_lg?: string | undefined;›font_size_xl?: string | undefined;
font_size_xl?: string | undefined;›font_size_2xl?: string | undefined;
font_size_2xl?: string | undefined;›font_size_3xl?: string | undefined;
font_size_3xl?: string | undefined;›size_8u?: string | undefined;
size_8u?: string | undefined;›size_10u?: string | undefined;
size_10u?: string | undefined;›size_12u?: string | undefined;
size_12u?: string | undefined;›size_18u?: string | undefined;
size_18u?: string | undefined;›size_20u?: string | undefined;
size_20u?: string | undefined;›size_24u?: string | undefined;
size_24u?: string | undefined;›size_32u?: string | undefined;
size_32u?: string | undefined;›size_36u?: string | undefined;
size_36u?: string | undefined;›size_40u?: string | undefined;
size_40u?: string | undefined;›size_45u?: string | undefined;
size_45u?: string | undefined;›size_50u?: string | undefined;
size_50u?: string | undefined;›shadow_sm?: string | undefined;
shadow_sm?: string | undefined;›shadow_md?: string | undefined;
shadow_md?: string | undefined;›shadow_lg?: string | undefined;
shadow_lg?: string | undefined;›shadow_xl?: string | undefined;
shadow_xl?: string | undefined;›shadow_success?: string | undefined;
shadow_success?: string | undefined;›ring_primary?: string | undefined;
ring_primary?: string | undefined;›letter_spacing_tight?: string | undefined;
letter_spacing_tight?: string | undefined;›dark_mode_settings?: DarkModeSettings | undefined;
dark_mode_settings?: DarkModeSettings | undefined;›primary_color?: string | undefined;
primary_color?: string | undefined;›background_color?: string | undefined;
background_color?: string | undefined;›text_color?: string | undefined;
text_color?: string | undefined;›token_overrides?: UITokenOverrides | undefined;
token_overrides?: UITokenOverrides | undefined;›space_unit?: string | undefined;
space_unit?: string | undefined;›card?: string | undefined;
card?: string | undefined;›card_foreground?: string | undefined;
card_foreground?: string | undefined;›popover?: string | undefined;
popover?: string | undefined;›popover_foreground?: string | undefined;
popover_foreground?: string | undefined;›primary_foreground?: string | undefined;
primary_foreground?: string | undefined;›secondary?: string | undefined;
secondary?: string | undefined;›secondary_foreground?: string | undefined;
secondary_foreground?: string | undefined;›accent?: string | undefined;
accent?: string | undefined;›accent_foreground?: string | undefined;
accent_foreground?: string | undefined;›ring?: string | undefined;
ring?: string | undefined;›foreground?: string | undefined;
foreground?: string | undefined;›foreground_inverse?: string | undefined;
foreground_inverse?: string | undefined;›secondary_text?: string | undefined;
secondary_text?: string | undefined;›muted?: string | undefined;
muted?: string | undefined;›border?: string | undefined;
border?: string | undefined;›border_hover?: string | undefined;
border_hover?: string | undefined;›divider?: string | undefined;
divider?: string | undefined;›input_background?: string | undefined;
input_background?: string | undefined;›input_border?: string | undefined;
input_border?: string | undefined;›input_focus_border?: string | undefined;
input_focus_border?: string | undefined;›background_subtle?: string | undefined;
background_subtle?: string | undefined;›background_hover?: string | undefined;
background_hover?: string | undefined;›primary_hover?: string | undefined;
primary_hover?: string | undefined;›error?: string | undefined;
error?: string | undefined;›error_background?: string | undefined;
error_background?: string | undefined;›error_border?: string | undefined;
error_border?: string | undefined;›warning?: string | undefined;
warning?: string | undefined;›warning_background?: string | undefined;
warning_background?: string | undefined;›warning_border?: string | undefined;
warning_border?: string | undefined;›warning_text?: string | undefined;
warning_text?: string | undefined;›success?: string | undefined;
success?: string | undefined;›success_background?: string | undefined;
success_background?: string | undefined;›success_border?: string | undefined;
success_border?: string | undefined;›info?: string | undefined;
info?: string | undefined;›info_background?: string | undefined;
info_background?: string | undefined;›radius_md?: string | undefined;
radius_md?: string | undefined;›radius_lg?: string | undefined;
radius_lg?: string | undefined;›radius_xl?: string | undefined;
radius_xl?: string | undefined;›radius_2xl?: string | undefined;
radius_2xl?: string | undefined;›radius_2xs?: string | undefined;
radius_2xs?: string | undefined;›radius_xs?: string | undefined;
radius_xs?: string | undefined;›radius_full?: string | undefined;
radius_full?: string | undefined;›border_width_thin?: string | undefined;
border_width_thin?: string | undefined;›border_width_regular?: string | undefined;
border_width_regular?: string | undefined;›scrollbar_track?: string | undefined;
scrollbar_track?: string | undefined;›scrollbar_thumb?: string | undefined;
scrollbar_thumb?: string | undefined;›scrollbar_thumb_hover?: string | undefined;
scrollbar_thumb_hover?: string | undefined;›shadow_color?: string | undefined;
shadow_color?: string | undefined;›shadow_light_color?: string | undefined;
shadow_light_color?: string | undefined;›shadow_medium_color?: string | undefined;
shadow_medium_color?: string | undefined;›success_shadow?: string | undefined;
success_shadow?: string | undefined;›success_background_light?: string | undefined;
success_background_light?: string | undefined;›button_ripple?: string | undefined;
button_ripple?: string | undefined;›dialog_backdrop?: string | undefined;
dialog_backdrop?: string | undefined;›space_0u?: string | undefined;
space_0u?: string | undefined;›space_1u?: string | undefined;
space_1u?: string | undefined;›space_2u?: string | undefined;
space_2u?: string | undefined;›space_3u?: string | undefined;
space_3u?: string | undefined;›space_4u?: string | undefined;
space_4u?: string | undefined;›space_5u?: string | undefined;
space_5u?: string | undefined;›space_6u?: string | undefined;
space_6u?: string | undefined;›space_7u?: string | undefined;
space_7u?: string | undefined;›space_8u?: string | undefined;
space_8u?: string | undefined;›space_10u?: string | undefined;
space_10u?: string | undefined;›space_12u?: string | undefined;
space_12u?: string | undefined;›space_14u?: string | undefined;
space_14u?: string | undefined;›space_16u?: string | undefined;
space_16u?: string | undefined;›space_24u?: string | undefined;
space_24u?: string | undefined;›font_size_2xs?: string | undefined;
font_size_2xs?: string | undefined;›font_size_xs?: string | undefined;
font_size_xs?: string | undefined;›font_size_sm?: string | undefined;
font_size_sm?: string | undefined;›font_size_md?: string | undefined;
font_size_md?: string | undefined;›font_size_lg?: string | undefined;
font_size_lg?: string | undefined;›font_size_xl?: string | undefined;
font_size_xl?: string | undefined;›font_size_2xl?: string | undefined;
font_size_2xl?: string | undefined;›font_size_3xl?: string | undefined;
font_size_3xl?: string | undefined;›size_8u?: string | undefined;
size_8u?: string | undefined;›size_10u?: string | undefined;
size_10u?: string | undefined;›size_12u?: string | undefined;
size_12u?: string | undefined;›size_18u?: string | undefined;
size_18u?: string | undefined;›size_20u?: string | undefined;
size_20u?: string | undefined;›size_24u?: string | undefined;
size_24u?: string | undefined;›size_32u?: string | undefined;
size_32u?: string | undefined;›size_36u?: string | undefined;
size_36u?: string | undefined;›size_40u?: string | undefined;
size_40u?: string | undefined;›size_45u?: string | undefined;
size_45u?: string | undefined;›size_50u?: string | undefined;
size_50u?: string | undefined;›shadow_sm?: string | undefined;
shadow_sm?: string | undefined;›shadow_md?: string | undefined;
shadow_md?: string | undefined;›shadow_lg?: string | undefined;
shadow_lg?: string | undefined;›shadow_xl?: string | undefined;
shadow_xl?: string | undefined;›shadow_success?: string | undefined;
shadow_success?: string | undefined;›ring_primary?: string | undefined;
ring_primary?: string | undefined;›letter_spacing_tight?: string | undefined;
letter_spacing_tight?: string | undefined;›adapter: PlatformAdapter;
adapter: PlatformAdapter;useClient()
useClient() gives you the low-level fetch wrapper that the shared hooks use for browser-side API calls. It builds requests from the current deployment instead of from a separate client configuration layer.
export default function PrivateData() { const { client, loading } = useClient(); async function load() { const response = await client('/me'); const data = await response.json(); console.log(data); } if (loading) { return null; } return <button onClick={load}>Load profile</button>;}›client: Client;
client: Client;›loading: boolean;
loading: boolean;useSession()
useSession() is the core auth-state hook. It exposes the current session object plus the mutations that change active sign-ins, change organization or workspace scope, sign out, exchange tickets, and fetch session tokens.
export default function SessionSummary() { const { session, loading } = useSession(); if (loading) { return null; } return <div>{session.active_signin?.user.email_address}</div>;}›loading: boolean;
loading: boolean;›error?: unknown | undefined;
error?: unknown | undefined;›refetch: () => Promise<void>;
refetch: () => Promise<void>;›session?: Session | undefined;
session?: Session | undefined;›active_signin?: SignIn | null | undefined;
active_signin?: SignIn | null | undefined;›id?: string | undefined;
id?: string | undefined;›active_organization_membership_id?: string | undefined;
active_organization_membership_id?: string | undefined;›active_workspace_membership_id?: string | undefined;
active_workspace_membership_id?: string | undefined;›expiresAt?: string | undefined;
expiresAt?: string | undefined;›lastActiveAt?: string | undefined;
lastActiveAt?: string | undefined;›user?: CurrentUser | undefined;
user?: CurrentUser | undefined;›id?: string | undefined;
id?: string | undefined;›first_name?: string | undefined;
first_name?: string | undefined;›last_name?: string | undefined;
last_name?: string | undefined;›username?: string | undefined;
username?: string | undefined;›primary_email_address?: UserEmailAddress | undefined;
primary_email_address?: UserEmailAddress | undefined;›email?: string | undefined;
email?: string | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›primary_phone_number?: UserPhoneNumber | undefined;
primary_phone_number?: UserPhoneNumber | undefined;›phone_number?: string | undefined;
phone_number?: string | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›has_password?: boolean | undefined;
has_password?: boolean | undefined;›has_passkeys?: boolean | undefined;
has_passkeys?: boolean | undefined;›signins?: SignIn[] | undefined;
signins?: SignIn[] | undefined;›signin_attempts?: SigninAttempt[] | undefined;
signin_attempts?: SigninAttempt[] | undefined;›id?: string | undefined;
id?: string | undefined;›method?: SignInMethod | undefined;
method?: SignInMethod | undefined;›current_step?: CurrentSessionStep | undefined;
current_step?: CurrentSessionStep | undefined;›completed?: boolean | undefined;
completed?: boolean | undefined;›second_method_authentication_required?: boolean | undefined;
second_method_authentication_required?: boolean | undefined;›available_2fa_methods?: string[] | undefined;
available_2fa_methods?: string[] | undefined;›requires_completion?: boolean | undefined;
requires_completion?: boolean | undefined;›missing_fields?: string[] | undefined;
missing_fields?: string[] | undefined;›profile_completion_data?: ProfileCompletionData | undefined;
profile_completion_data?: ProfileCompletionData | undefined;›first_name?: string | undefined;
first_name?: string | undefined;›last_name?: string | undefined;
last_name?: string | undefined;›username?: string | undefined;
username?: string | undefined;›email?: string | undefined;
email?: string | undefined;›phone_number?: string | undefined;
phone_number?: string | undefined;›signup_attempts?: SignupAttempt[] | undefined;
signup_attempts?: SignupAttempt[] | undefined;›id?: string | undefined;
id?: string | undefined;›current_step?: SignupAttemptStep | undefined;
current_step?: SignupAttemptStep | undefined;›remaining_steps?: SignupAttemptStep[] | undefined;
remaining_steps?: SignupAttemptStep[] | undefined;›completed?: boolean | undefined;
completed?: boolean | undefined;›required_fields?: string[] | undefined;
required_fields?: string[] | undefined;›missing_fields?: string[] | undefined;
missing_fields?: string[] | undefined;›switchSignIn?: (signInId: string) => Promise<void> | undefined;
switchSignIn?: (signInId: string) => Promise<void> | undefined;›switchOrganization?: (organizationId?: string) => Promise<void> | undefined;
switchOrganization?: (organizationId?: string) => Promise<void> | undefined;›switchWorkspace?: (workspaceId: string) => Promise<void> | undefined;
switchWorkspace?: (workspaceId: string) => Promise<void> | undefined;›signOut?: (signInId?: string) => Promise<void> | undefined;
signOut?: (signInId?: string) => Promise<void> | undefined;›getToken?: (template?: string) => Promise<string> | undefined;
getToken?: (template?: string) => Promise<string> | undefined;›exchangeTicket?: (ticket: string) => Promise<void> | undefined;
exchangeTicket?: (ticket: string) => Promise<void> | undefined;useUser()
useUser() is the broadest user-management hook in the shared client layer. It owns the current user record together with the mutations for profile updates, contact methods, authenticators, backup codes, passwords, social connections, and passkeys.
export default function ProfileSettings() { const { user, loading, updateProfile } = useUser(); if (loading) { return null; } async function save() { await updateProfile({ first_name: user.first_name, last_name: user.last_name, }); } return <button onClick={save}>Save profile</button>;}›user: CurrentUser & { refetch: () => Promise<CurrentUser | undefined> };
user: CurrentUser & { refetch: () => Promise<CurrentUser | undefined> };›id?: string | undefined;
id?: string | undefined;›first_name?: string | undefined;
first_name?: string | undefined;›last_name?: string | undefined;
last_name?: string | undefined;›username?: string | undefined;
username?: string | undefined;›primary_email_address?: UserEmailAddress | undefined;
primary_email_address?: UserEmailAddress | undefined;›email?: string | undefined;
email?: string | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›primary_phone_number?: UserPhoneNumber | undefined;
primary_phone_number?: UserPhoneNumber | undefined;›phone_number?: string | undefined;
phone_number?: string | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›user_email_addresses?: UserEmailAddress[] | undefined;
user_email_addresses?: UserEmailAddress[] | undefined;›user_phone_numbers?: UserPhoneNumber[] | undefined;
user_phone_numbers?: UserPhoneNumber[] | undefined;›social_connections?: SocialConnection[] | undefined;
social_connections?: SocialConnection[] | undefined;›user_authenticator?: UserAuthenticator | undefined;
user_authenticator?: UserAuthenticator | undefined;›backup_codes_generated?: boolean | undefined;
backup_codes_generated?: boolean | undefined;›has_password?: boolean | undefined;
has_password?: boolean | undefined;›has_passkeys?: boolean | undefined;
has_passkeys?: boolean | undefined;›refetch?: () => Promise<CurrentUser | undefined> | undefined;
refetch?: () => Promise<CurrentUser | undefined> | undefined;›loading: boolean;
loading: boolean;›error: Error | null;
error: Error | null;›updateProfile: (data: ProfileUpdateData) => Promise<ApiResult<unknown>>;
updateProfile: (data: ProfileUpdateData) => Promise<ApiResult<unknown>>;›first_name?: string | undefined;
first_name?: string | undefined;›last_name?: string | undefined;
last_name?: string | undefined;›username?: string | undefined;
username?: string | undefined;›primary_email_address_id?: string | undefined;
primary_email_address_id?: string | undefined;›primary_phone_number_id?: string | undefined;
primary_phone_number_id?: string | undefined;›second_factor_policy?: "none" | "optional" | "enforced" | undefined;
second_factor_policy?: "none" | "optional" | "enforced" | undefined;›remove_profile_picture?: boolean | undefined;
remove_profile_picture?: boolean | undefined;›getEmailAddresses: () => Promise<ApiResult<UserEmailAddress[]>>;
getEmailAddresses: () => Promise<ApiResult<UserEmailAddress[]>>;›[].id?: string | undefined;
[].id?: string | undefined;›[].email?: string | undefined;
[].email?: string | undefined;›[].is_primary?: boolean | undefined;
[].is_primary?: boolean | undefined;›[].verified?: boolean | undefined;
[].verified?: boolean | undefined;›[].verified_at?: string | undefined;
[].verified_at?: string | undefined;›[].verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;
[].verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;›getEmailAddress: (id: string) => Promise<ApiResult<UserEmailAddress>>;
getEmailAddress: (id: string) => Promise<ApiResult<UserEmailAddress>>;›id?: string | undefined;
id?: string | undefined;›email?: string | undefined;
email?: string | undefined;›is_primary?: boolean | undefined;
is_primary?: boolean | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›verified_at?: string | undefined;
verified_at?: string | undefined;›verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;
verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;›createEmailAddress: (email: string) => Promise<ApiResult<UserEmailAddress>>;
createEmailAddress: (email: string) => Promise<ApiResult<UserEmailAddress>>;›id?: string | undefined;
id?: string | undefined;›email?: string | undefined;
email?: string | undefined;›is_primary?: boolean | undefined;
is_primary?: boolean | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›verified_at?: string | undefined;
verified_at?: string | undefined;›verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;
verification_strategy?: "otp" | "oath_google" | "oath_github" | "oauth_microsoft" | "oauth_facebook" | "oauth_linkedin" | "oauth_discord" | "oauth_apple" | undefined;›deleteEmailAddress: (id: string) => Promise<ApiResult<unknown>>;
deleteEmailAddress: (id: string) => Promise<ApiResult<unknown>>;›prepareEmailVerification: (id: string) => Promise<ApiResult<unknown>>;
prepareEmailVerification: (id: string) => Promise<ApiResult<unknown>>;›attemptEmailVerification: (id: string, otp: string) => Promise<ApiResult<unknown>>;
attemptEmailVerification: (id: string, otp: string) => Promise<ApiResult<unknown>>;›makeEmailPrimary: (id: string) => Promise<ApiResult<unknown>>;
makeEmailPrimary: (id: string) => Promise<ApiResult<unknown>>;›createPhoneNumber: (phone_number: string, country_code: string) => Promise<ApiResult<UserPhoneNumber>>;
createPhoneNumber: (phone_number: string, country_code: string) => Promise<ApiResult<UserPhoneNumber>>;›id?: string | undefined;
id?: string | undefined;›phone_number?: string | undefined;
phone_number?: string | undefined;›country_code?: string | undefined;
country_code?: string | undefined;›verified?: boolean | undefined;
verified?: boolean | undefined;›verified_at?: string | undefined;
verified_at?: string | undefined;›deletePhoneNumber: (id: string) => Promise<ApiResult<unknown>>;
deletePhoneNumber: (id: string) => Promise<ApiResult<unknown>>;›preparePhoneVerification: (id: string) => Promise<ApiResult<unknown>>;
preparePhoneVerification: (id: string) => Promise<ApiResult<unknown>>;›attemptPhoneVerification: (id: string, otp: string) => Promise<ApiResult<unknown>>;
attemptPhoneVerification: (id: string, otp: string) => Promise<ApiResult<unknown>>;›makePhonePrimary: (id: string) => Promise<ApiResult<unknown>>;
makePhonePrimary: (id: string) => Promise<ApiResult<unknown>>;›setupAuthenticator: () => Promise<UserAuthenticator>;
setupAuthenticator: () => Promise<UserAuthenticator>;›id?: string | undefined;
id?: string | undefined;›created_at?: string | undefined;
created_at?: string | undefined;›totp_secret?: string | undefined;
totp_secret?: string | undefined;›otp_url?: string | undefined;
otp_url?: string | undefined;›verifyAuthenticator: (id: string, codes: string[]) => Promise<ApiResult<unknown>>;
verifyAuthenticator: (id: string, codes: string[]) => Promise<ApiResult<unknown>>;›deleteAuthenticator: (id: string) => Promise<ApiResult<unknown>>;
deleteAuthenticator: (id: string) => Promise<ApiResult<unknown>>;›generateBackupCodes: () => Promise<string[]>;
generateBackupCodes: () => Promise<string[]>;›regenerateBackupCodes: () => Promise<string[]>;
regenerateBackupCodes: () => Promise<string[]>;›updateProfilePicture: (file: File) => Promise<ApiResult<unknown>>;
updateProfilePicture: (file: File) => Promise<ApiResult<unknown>>;›updatePassword: (currentPassword: string, newPassword: string) => Promise<ApiResult<unknown>>;
updatePassword: (currentPassword: string, newPassword: string) => Promise<ApiResult<unknown>>;›removePassword: (currentPassword: string) => Promise<ApiResult<unknown>>;
removePassword: (currentPassword: string) => Promise<ApiResult<unknown>>;›connectSocialAccount: (params: { provider: string; redirectUri?: string }) => Promise<ApiResult<{ oauth_url: string }>>;
connectSocialAccount: (params: { provider: string; redirectUri?: string }) => Promise<ApiResult<{ oauth_url: string }>>;›oauth_url?: string | undefined;
oauth_url?: string | undefined;›disconnectSocialConnection: (id: string) => Promise<ApiResult<unknown>>;
disconnectSocialConnection: (id: string) => Promise<ApiResult<unknown>>;›getPasskeys: () => Promise<ApiResult<UserPasskey[]>>;
getPasskeys: () => Promise<ApiResult<UserPasskey[]>>;›[].id?: string | undefined;
[].id?: string | undefined;›[].name?: string | undefined;
[].name?: string | undefined;›[].created_at?: string | undefined;
[].created_at?: string | undefined;›[].last_used_at?: string | null | undefined;
[].last_used_at?: string | null | undefined;›[].device_type?: string | undefined;
[].device_type?: string | undefined;›[].backed_up?: boolean | undefined;
[].backed_up?: boolean | undefined;›registerPasskey: (name?: string) => Promise<ApiResult<unknown>>;
registerPasskey: (name?: string) => Promise<ApiResult<unknown>>;›renamePasskey: (id: string, name: string) => Promise<ApiResult<unknown>>;
renamePasskey: (id: string, name: string) => Promise<ApiResult<unknown>>;›deletePasskey: (id: string) => Promise<ApiResult<unknown>>;
deletePasskey: (id: string) => Promise<ApiResult<unknown>>;›deleteAccount: (password: string) => Promise<ApiResult<unknown>>;
deleteAccount: (password: string) => Promise<ApiResult<unknown>>;useNavigation()
useNavigation() gives shared auth components one navigation surface across Next.js, React Router, and TanStack Router. It uses the active adapter when one is available, and it builds the hosted sign-in and sign-up targets from the current deployment settings.
export default function AuthActions() { const { navigateToSignIn, navigateToSignUp } = useNavigation(); return ( <div className="flex gap-3"> <button onClick={() => navigateToSignIn()}>Sign in</button> <button onClick={() => navigateToSignUp()}>Create account</button> </div> );}›navigate?: (to: string, options?: { replace?: boolean; state?: any }) => void | undefined;
navigate?: (to: string, options?: { replace?: boolean; state?: any }) => void | undefined;›replace?: boolean | undefined | undefined;
replace?: boolean | undefined | undefined;›state?: any | undefined;
state?: any | undefined;›navigateToSignIn?: (redirectUri?: string) => void | undefined;
navigateToSignIn?: (redirectUri?: string) => void | undefined;›navigateToAccountSelection?: (redirectUri?: string) => void | undefined;
navigateToAccountSelection?: (redirectUri?: string) => void | undefined;›navigateToSignUp?: (redirectUri?: string) => void | undefined;
navigateToSignUp?: (redirectUri?: string) => void | undefined;