diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/intents/VerifyEmailIntentDialog.tsx | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/src/components/intents/VerifyEmailIntentDialog.tsx b/src/components/intents/VerifyEmailIntentDialog.tsx index e8c63af82..90fb2debe 100644 --- a/src/components/intents/VerifyEmailIntentDialog.tsx +++ b/src/components/intents/VerifyEmailIntentDialog.tsx @@ -3,11 +3,14 @@ import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useAgent, useSession} from 'state/session' -import {atoms as a} from '#/alf' -import {Button, ButtonText} from '#/components/Button' +import {isNative} from '#/platform/detection' +import {useAgent, useSession} from '#/state/session' +import {atoms as a, useBreakpoints,useTheme} from '#/alf' +import {Button, ButtonIcon,ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {DialogControlProps} from '#/components/Dialog' +import {Divider} from '#/components/Divider' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Resend} from '#/components/icons/ArrowRotateCounterClockwise' import {useIntentDialogs} from '#/components/intents/IntentDialogs' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' @@ -23,7 +26,9 @@ export function VerifyEmailIntentDialog() { ) } -function Inner({control}: {control: DialogControlProps}) { +function Inner({}: {control: DialogControlProps}) { + const t = useTheme() + const {gtMobile} = useBreakpoints() const {_} = useLingui() const {verifyEmailState: state} = useIntentDialogs() const [status, setStatus] = React.useState< @@ -58,43 +63,47 @@ function Inner({control}: {control: DialogControlProps}) { } return ( - <Dialog.ScrollableInner label={_(msg`Verify email dialog`)}> - <Dialog.Close /> + <Dialog.ScrollableInner + label={_(msg`Verify email dialog`)} + style={[ + gtMobile ? {width: 'auto', maxWidth: 400, minWidth: 200} : a.w_full, + ]}> <View style={[a.gap_xl]}> {status === 'loading' ? ( <View style={[a.py_2xl, a.align_center, a.justify_center]}> - <Loader size="xl" /> + <Loader size="xl" fill={t.atoms.text_contrast_low.color} /> </View> ) : status === 'success' ? ( - <> - <Text style={[a.font_bold, a.text_2xl]}> + <View style={[a.gap_sm, isNative && a.pb_xl]}> + <Text style={[a.font_heavy, a.text_2xl]}> <Trans>Email Verified</Trans> </Text> - <Text style={[a.text_md, a.leading_tight]}> + <Text style={[a.text_md, a.leading_snug]}> <Trans> - Thanks, you have successfully verified your email address. + Thanks, you have successfully verified your email address. You + can close this dialog. </Trans> </Text> - </> + </View> ) : status === 'failure' ? ( - <> - <Text style={[a.font_bold, a.text_2xl]}> + <View style={[a.gap_sm]}> + <Text style={[a.font_heavy, a.text_2xl]}> <Trans>Invalid Verification Code</Trans> </Text> - <Text style={[a.text_md, a.leading_tight]}> + <Text style={[a.text_md, a.leading_snug]}> <Trans> The verification code you have provided is invalid. Please make sure that you have used the correct verification link or request a new one. </Trans> </Text> - </> + </View> ) : ( - <> - <Text style={[a.font_bold, a.text_2xl]}> + <View style={[a.gap_sm, isNative && a.pb_xl]}> + <Text style={[a.font_heavy, a.text_2xl]}> <Trans>Email Resent</Trans> </Text> - <Text style={[a.text_md, a.leading_tight]}> + <Text style={[a.text_md, a.leading_snug]}> <Trans> We have sent another verification email to{' '} <Text style={[a.text_md, a.font_bold]}> @@ -103,38 +112,29 @@ function Inner({control}: {control: DialogControlProps}) { . </Trans> </Text> - </> + </View> )} - {status !== 'loading' ? ( - <View style={[a.w_full, a.flex_row, a.gap_sm, {marginLeft: 'auto'}]}> + + {status === 'failure' && ( + <> + <Divider /> <Button - label={_(msg`Close`)} - onPress={() => control.close()} + label={_(msg`Resend Verification Email`)} + onPress={onPressResendEmail} variant="solid" - color={status === 'failure' ? 'secondary' : 'primary'} + color="secondary_inverted" size="large" - style={{marginLeft: 'auto'}}> + disabled={sending}> + <ButtonIcon icon={sending ? Loader : Resend} position="left" /> <ButtonText> - <Trans>Close</Trans> + <Trans>Resend Email</Trans> </ButtonText> </Button> - {status === 'failure' ? ( - <Button - label={_(msg`Resend Verification Email`)} - onPress={onPressResendEmail} - variant="solid" - color="primary" - size="large" - disabled={sending}> - <ButtonText> - <Trans>Resend Email</Trans> - </ButtonText> - {sending ? <Loader size="sm" style={{color: 'white'}} /> : null} - </Button> - ) : null} - </View> - ) : null} + </> + )} </View> + + <Dialog.Close /> </Dialog.ScrollableInner> ) } |