diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-04-23 19:22:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-23 11:22:08 -0500 |
commit | 70dbc94766b8f3c9d2c1b815fad66232523d28ab (patch) | |
tree | 6c860d092c29b48f6dda9c58364f78a8ef07de2c /src/screens/Settings/components/Email2FAToggle.tsx | |
parent | 118d385b1010190542e58fba1d640f75714b6ea9 (diff) | |
download | voidsky-70dbc94766b8f3c9d2c1b815fad66232523d28ab.tar.zst |
Modernise change email flow (#8106)
* use new verify email dialog in 2fa flow * alf change email flow * Fallback change email dialog * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update ChangeEmailDialog.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update Email2FAToggle.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * don't use existing email as default value * increase max width of email dialogs * Use ALF verify email dialog for reminder (#5924) * use new verify email dialog for reminder * style tweaks, improve web * add a lil toast * Apply suggestions from code review Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Ditch close and push up image --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> Co-authored-by: Eric Bailey <git@esb.lol> * delete old change/verify email modals (#8122) (cherry picked from commit fceb655b3bacad1bce210810234137b7233d263d) * Translate email placeholder Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Align copy * Clean up error handling --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/screens/Settings/components/Email2FAToggle.tsx')
-rw-r--r-- | src/screens/Settings/components/Email2FAToggle.tsx | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/screens/Settings/components/Email2FAToggle.tsx b/src/screens/Settings/components/Email2FAToggle.tsx index 0b327df79..3e341cd73 100644 --- a/src/screens/Settings/components/Email2FAToggle.tsx +++ b/src/screens/Settings/components/Email2FAToggle.tsx @@ -2,9 +2,10 @@ import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' import {useAgent, useSession} from '#/state/session' import {useDialogControl} from '#/components/Dialog' +import {ChangeEmailDialog} from '#/components/dialogs/ChangeEmailDialog' +import {VerifyEmailDialog} from '#/components/dialogs/VerifyEmailDialog' import * as Prompt from '#/components/Prompt' import {DisableEmail2FADialog} from './DisableEmail2FADialog' import * as SettingsList from './SettingsList' @@ -12,9 +13,10 @@ import * as SettingsList from './SettingsList' export function Email2FAToggle() { const {_} = useLingui() const {currentAccount} = useSession() - const {openModal} = useModalControls() const disableDialogControl = useDialogControl() const enableDialogControl = useDialogControl() + const verifyEmailDialogControl = useDialogControl() + const changeEmailDialogControl = useDialogControl() const agent = useAgent() const enableEmailAuthFactor = React.useCallback(async () => { @@ -35,15 +37,17 @@ export function Email2FAToggle() { disableDialogControl.open() } else { if (!currentAccount.emailConfirmed) { - openModal({ - name: 'verify-email', - onSuccess: enableDialogControl.open, - }) + verifyEmailDialogControl.open() return } enableDialogControl.open() } - }, [currentAccount, enableDialogControl, openModal, disableDialogControl]) + }, [ + currentAccount, + enableDialogControl, + verifyEmailDialogControl, + disableDialogControl, + ]) return ( <> @@ -55,6 +59,18 @@ export function Email2FAToggle() { onConfirm={enableEmailAuthFactor} confirmButtonCta={_(msg`Enable`)} /> + <VerifyEmailDialog + control={verifyEmailDialogControl} + changeEmailControl={changeEmailDialogControl} + onCloseAfterVerifying={enableDialogControl.open} + reasonText={_( + msg`You need to verify your email address before you can enable email 2FA.`, + )} + /> + <ChangeEmailDialog + control={changeEmailDialogControl} + verifyEmailControl={verifyEmailDialogControl} + /> <SettingsList.BadgeButton label={ currentAccount?.emailAuthFactor ? _(msg`Change`) : _(msg`Enable`) |