Account & profile
User profile, sessions, email/password, and 2FA management UI.
Signed-in account management: profile editing, image upload, email change, password reset, 2FA enrollment, session list, and the user button.
ConvexChangeEmailForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexChangeEmailFormClassNames |
Yes | |
copy |
ConvexChangeEmailFormCopy |
Yes | |
currentEmail |
string | None |
Yes | The user’s current email, displayed read-only above the new-email field. |
onRequested |
(newEmail: string) => void |
Yes | |
verifyCallbackUrl |
string |
Yes | Absolute URL of the verify-email page on this app. The app |
| appends |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
root |
string |
submitButton |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
currentEmailLabel |
string |
description |
string |
newEmailLabel |
string |
newEmailPlaceholder |
string |
sameAsCurrentMessage |
string |
submit |
string |
submitting |
string |
successMessage |
string |
title |
string |
unavailable |
string |
ConvexEnableTwoFactorForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexEnableTwoFactorFormClassNames |
Yes | |
copy |
ConvexEnableTwoFactorFormCopy |
Yes | |
issuer |
string |
Yes | Authenticator label shown alongside the account (e.g. “Pile”). |
onEnrolled |
() => void |
Yes | Fired once enrollment is fully confirmed (after the backup step). |
renderQR |
(totpURI: string) => ReactNode |
Yes | Optional QR renderer. Receives the |
classNames keys
| Key | Type |
|---|---|
backupCode |
string |
backupCodes |
string |
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
qr |
string |
root |
string |
secret |
string |
submitButton |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
backupDescription |
string |
backupTitle |
string |
codeLabel |
string |
codePlaceholder |
string |
description |
string |
done |
string |
passwordLabel |
string |
passwordPlaceholder |
string |
passwordSubmit |
string |
secretLabel |
string |
submitting |
string |
title |
string |
unavailable |
string |
verifyDescription |
string |
verifySubmit |
string |
verifyTitle |
string |
ConvexForgotPasswordForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexForgotPasswordFormClassNames |
Yes | |
copy |
ConvexForgotPasswordFormCopy |
Yes | |
onRequested |
(email: string) => void |
Yes | |
resetPasswordUrl |
string |
No | Absolute URL of the reset-password page on this app. The app |
| appends |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
root |
string |
submitButton |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
description |
string |
emailLabel |
string |
emailPlaceholder |
string |
submit |
string |
submitting |
string |
successMessage |
string |
title |
string |
unavailable |
string |
ConvexProfileEditForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexProfileEditFormClassNames |
Yes | |
copy |
ConvexProfileEditFormCopy |
Yes | |
initialImage |
string |
Yes | |
initialName |
string |
Yes | |
onUpdated |
(next: __type) => void |
Yes | |
showImageField |
boolean |
Yes | Whether to show the image URL field. Defaults to true. Set to |
| false for consumers that don’t surface avatar editing. |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
root |
string |
submitButton |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
description |
string |
imageLabel |
string |
nameLabel |
string |
submit |
string |
submitting |
string |
successMessage |
string |
title |
string |
unavailable |
string |
ConvexProfileImageUploader
Props
| Name | Type | Optional | Description |
|---|---|---|---|
accept |
string |
Yes | File-input |
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexProfileImageUploaderClassNames |
Yes | |
copy |
ConvexProfileImageUploaderCopy |
Yes | |
initialImage |
string | None |
Yes | |
onUploaded |
(url: string) => void |
Yes | |
uploadFile |
(file: Blob | string) => Promise<string> |
No | Consumer-provided upload strategy. Receives the picked file (a |
| browser |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
noPreview |
string |
pickButton |
string |
preview |
string |
root |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
description |
string |
noImage |
string |
pick |
string |
successMessage |
string |
title |
string |
unavailable |
string |
uploading |
string |
ConvexResetPasswordForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexResetPasswordFormClassNames |
Yes | |
copy |
ConvexResetPasswordFormCopy |
Yes | |
minPasswordLength |
number |
Yes | Minimum new-password length to enforce client-side. Defaults to |
| 12 (matches the package’s server-side | |||
onReset |
() => void |
Yes | |
token |
string |
No | Reset token from the recovery email (typically |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
root |
string |
submitButton |
string |
successState |
string |
copy keys
| Key | Type |
|---|---|
confirmPasswordLabel |
string |
description |
string |
minLengthMessage |
string |
mismatchMessage |
string |
missingTokenMessage |
string |
passwordLabel |
string |
submit |
string |
submitting |
string |
successMessage |
string |
title |
string |
unavailable |
string |
ConvexSessionList
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexSessionListClassNames |
Yes | |
copy |
ConvexSessionListCopy |
Yes | |
formatTimestamp |
(value: string | Date) => string |
Yes | |
showRevokeOthersAction |
boolean |
Yes | Render a “Revoke all other sessions” button next to the title. |
| Defaults to true. Hides when no other sessions exist. |
classNames keys
| Key | Type |
|---|---|
emptyState |
string |
errorState |
string |
item |
string |
itemCurrent |
string |
itemMeta |
string |
list |
string |
loadingState |
string |
revokeButton |
string |
root |
string |
copy keys
| Key | Type |
|---|---|
currentBadge |
string |
description |
string |
empty |
string |
lastActivePrefix |
string |
loading |
string |
revoke |
string |
revokeOthersButton |
string |
revoking |
string |
revokingOthersButton |
string |
title |
string |
unavailable |
string |
ConvexUserButton
Props
| Name | Type | Optional | Description |
|---|---|---|---|
classNames |
ConvexUserButtonClassNames |
Yes | |
copy |
ConvexUserButtonCopy |
Yes | |
currentOrganizationId |
string | None |
Yes | |
onCreateOrganization |
() => void | Promise<void> |
Yes | |
onManageAccount |
() => void | Promise<void> |
Yes | |
onManageOrganization |
() => void | Promise<void> |
Yes | |
onSelectOrganization |
(organizationId: string) => void | Promise<void> |
Yes | |
onSignOut |
() => void | Promise<void> |
Yes | |
organizations |
readonly ConvexUserButtonOrganizationItem[] |
Yes | |
renderCustomTrigger |
(args: __type) => ReactNode |
Yes | |
showManageOrganization |
boolean |
Yes | |
user |
ConvexUserButtonUser | None | undefined |
No |
classNames keys
| Key | Type |
|---|---|
avatar |
string |
dropdown |
string |
dropdownDivider |
string |
dropdownItem |
string |
dropdownItemActive |
string |
dropdownItemLabel |
string |
dropdownItemMeta |
string |
dropdownPanel |
string |
dropdownSection |
string |
dropdownSectionTitle |
string |
initials |
string |
signOutButton |
string |
trigger |
string |
copy keys
| Key | Type |
|---|---|
createOrganizationLabel |
string |
manageAccountLabel |
string |
manageOrganizationLabel |
string |
personalAccountLabel |
string |
signedInAsLabel |
string |
signOutLabel |
string |
switchOrganizationLabel |
string |
ConvexUserProfile
Props
| Name | Type | Optional | Description |
|---|---|---|---|
classNames |
ConvexUserProfileClassNames |
Yes | |
copy |
ConvexUserProfileCopy |
Yes | |
errorMessage |
string | None |
Yes | |
isAdmin |
boolean |
Yes | |
isLoading |
boolean |
Yes | |
onChangePassword |
() => void | Promise<void> |
Yes | |
onDeleteAccount |
() => void | Promise<void> |
Yes | |
onManageTwoFactor |
() => void | Promise<void> |
Yes | |
onUpdateProfile |
(input: __type) => void | Promise<void> |
Yes | |
renderDeleteConfirm |
(args: __type) => ReactNode |
Yes | |
user |
ConvexUserProfileUser | None | undefined |
No |
classNames keys
| Key | Type |
|---|---|
actions |
string |
body |
string |
card |
string |
dangerButton |
string |
description |
string |
errorBanner |
string |
field |
string |
header |
string |
image |
string |
imagePlaceholder |
string |
input |
string |
label |
string |
primaryButton |
string |
providerItem |
string |
providerLabel |
string |
secondaryButton |
string |
sectionBody |
string |
sectionDivider |
string |
sectionTitle |
string |
title |
string |
value |
string |
copy keys
| Key | Type |
|---|---|
cancelLabel |
string |
changePasswordLabel |
string |
confirmDeleteDescription |
string |
confirmDeleteTitle |
string |
connectedAccountsLabel |
string |
deleteAccountLabel |
string |
description |
string |
editLabel |
string |
emailLabel |
string |
imageUrlLabel |
string |
imageUrlPlaceholder |
string |
nameLabel |
string |
nameRequiredError |
string |
notVerifiedLabel |
string |
saveLabel |
string |
savingLabel |
string |
securityLabel |
string |
title |
string |
twoFactorLabel |
string |
verifiedLabel |
string |
ConvexVerifyEmailScreen
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexVerifyEmailScreenClassNames |
Yes | |
copy |
ConvexVerifyEmailScreenCopy |
Yes | |
onVerified |
() => void |
Yes | Called on successful verification (after the verify call returns ok). |
resendCallbackUrl |
string |
Yes | Absolute URL of this verify-email page on this app. The app |
| appends a fresh | |||
token |
string |
No | Token from the verification email’s |
userEmail |
string | None |
Yes | The current user’s email, if signed in. Required to enable the |
resend-verification button. If absent, the resend button is hidden (no way to know which email to resend to). |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
missingTokenState |
string |
resendButton |
string |
root |
string |
verifiedState |
string |
verifyingState |
string |
copy keys
| Key | Type |
|---|---|
description |
string |
errorPrefix |
string |
missingTokenMessage |
string |
resend |
string |
resending |
string |
resendSuccess |
string |
title |
string |
unavailable |
string |
verified |
string |
verifying |
string |
ConvexVerifyTwoFactorForm
Props
| Name | Type | Optional | Description |
|---|---|---|---|
authClient |
ConvexAuthClient | None |
Yes | |
classNames |
ConvexVerifyTwoFactorFormClassNames |
Yes | |
copy |
ConvexVerifyTwoFactorFormCopy |
Yes | |
onVerified |
() => void |
Yes | Fired once the second factor is satisfied and the session is live. |
showTrustDevice |
boolean |
Yes | Show the “trust this device” checkbox (skips 2FA on this device for |
| the server’s trust window). Defaults to true. |
classNames keys
| Key | Type |
|---|---|
errorState |
string |
field |
string |
form |
string |
input |
string |
label |
string |
root |
string |
submitButton |
string |
toggleButton |
string |
trustToggle |
string |
copy keys
| Key | Type |
|---|---|
backupCodeLabel |
string |
backupCodePlaceholder |
string |
codeLabel |
string |
codePlaceholder |
string |
description |
string |
submit |
string |
submitting |
string |
title |
string |
trustDeviceLabel |
string |
unavailable |
string |
useAuthenticator |
string |
useBackupCode |
string |