Tweak verify intent dialog

This commit is contained in:
Eric Bailey
2024-10-01 15:20:13 -05:00
parent 5647d019ae
commit d36d8d6bc1
@@ -3,11 +3,14 @@ import {View} from 'react-native'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useAgent, useSession} from 'state/session' import {isNative} from '#/platform/detection'
import {atoms as a} from '#/alf' import {useAgent, useSession} from '#/state/session'
import {Button, ButtonText} from '#/components/Button' import {atoms as a, useBreakpoints,useTheme} from '#/alf'
import {Button, ButtonIcon,ButtonText} from '#/components/Button'
import * as Dialog from '#/components/Dialog' import * as Dialog from '#/components/Dialog'
import {DialogControlProps} 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 {useIntentDialogs} from '#/components/intents/IntentDialogs'
import {Loader} from '#/components/Loader' import {Loader} from '#/components/Loader'
import {Text} from '#/components/Typography' 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 {_} = useLingui()
const {verifyEmailState: state} = useIntentDialogs() const {verifyEmailState: state} = useIntentDialogs()
const [status, setStatus] = React.useState< const [status, setStatus] = React.useState<
@@ -58,43 +63,47 @@ function Inner({control}: {control: DialogControlProps}) {
} }
return ( return (
<Dialog.ScrollableInner label={_(msg`Verify email dialog`)}> <Dialog.ScrollableInner
<Dialog.Close /> label={_(msg`Verify email dialog`)}
style={[
gtMobile ? {width: 'auto', maxWidth: 400, minWidth: 200} : a.w_full,
]}>
<View style={[a.gap_xl]}> <View style={[a.gap_xl]}>
{status === 'loading' ? ( {status === 'loading' ? (
<View style={[a.py_2xl, a.align_center, a.justify_center]}> <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> </View>
) : status === 'success' ? ( ) : status === 'success' ? (
<> <View style={[a.gap_sm, isNative && a.pb_xl]}>
<Text style={[a.font_bold, a.text_2xl]}> <Text style={[a.font_heavy, a.text_2xl]}>
<Trans>Email Verified</Trans> <Trans>Email Verified</Trans>
</Text> </Text>
<Text style={[a.text_md, a.leading_tight]}> <Text style={[a.text_md, a.leading_snug]}>
<Trans> <Trans>
Thanks, you have successfully verified your email address. Thanks, you have successfully verified your email address. You
can close this dialog.
</Trans> </Trans>
</Text> </Text>
</> </View>
) : status === 'failure' ? ( ) : status === 'failure' ? (
<> <View style={[a.gap_sm]}>
<Text style={[a.font_bold, a.text_2xl]}> <Text style={[a.font_heavy, a.text_2xl]}>
<Trans>Invalid Verification Code</Trans> <Trans>Invalid Verification Code</Trans>
</Text> </Text>
<Text style={[a.text_md, a.leading_tight]}> <Text style={[a.text_md, a.leading_snug]}>
<Trans> <Trans>
The verification code you have provided is invalid. Please make The verification code you have provided is invalid. Please make
sure that you have used the correct verification link or request sure that you have used the correct verification link or request
a new one. a new one.
</Trans> </Trans>
</Text> </Text>
</> </View>
) : ( ) : (
<> <View style={[a.gap_sm, isNative && a.pb_xl]}>
<Text style={[a.font_bold, a.text_2xl]}> <Text style={[a.font_heavy, a.text_2xl]}>
<Trans>Email Resent</Trans> <Trans>Email Resent</Trans>
</Text> </Text>
<Text style={[a.text_md, a.leading_tight]}> <Text style={[a.text_md, a.leading_snug]}>
<Trans> <Trans>
We have sent another verification email to{' '} We have sent another verification email to{' '}
<Text style={[a.text_md, a.font_bold]}> <Text style={[a.text_md, a.font_bold]}>
@@ -103,38 +112,29 @@ function Inner({control}: {control: DialogControlProps}) {
. .
</Trans> </Trans>
</Text> </Text>
</> </View>
)} )}
{status !== 'loading' ? (
<View style={[a.w_full, a.flex_row, a.gap_sm, {marginLeft: 'auto'}]}> {status === 'failure' && (
<>
<Divider />
<Button <Button
label={_(msg`Close`)} label={_(msg`Resend Verification Email`)}
onPress={() => control.close()} onPress={onPressResendEmail}
variant="solid" variant="solid"
color={status === 'failure' ? 'secondary' : 'primary'} color="secondary_inverted"
size="large" size="large"
style={{marginLeft: 'auto'}}> disabled={sending}>
<ButtonIcon icon={sending ? Loader : Resend} position="left" />
<ButtonText> <ButtonText>
<Trans>Close</Trans> <Trans>Resend Email</Trans>
</ButtonText> </ButtonText>
</Button> </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> </View>
<Dialog.Close />
</Dialog.ScrollableInner> </Dialog.ScrollableInner>
) )
} }