diff options
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`) |