Tweak email verification dialog (#6397)

This commit is contained in:
Hailey
2024-11-15 17:32:28 -08:00
committed by GitHub
parent a9cacbf265
commit c0fb5245f1
2 changed files with 59 additions and 24 deletions
+35 -12
View File
@@ -146,11 +146,35 @@ export function Inner({
<ErrorMessage message={error} /> <ErrorMessage message={error} />
</View> </View>
) : null} ) : null}
<Text style={[a.text_md, a.leading_snug]}>
{currentStep === 'StepOne' ? ( {currentStep === 'StepOne' ? (
<> <View>
{!reasonText ? ( {reasonText ? (
<> <View style={[a.gap_sm]}>
<Text style={[a.text_md, a.leading_snug]}>{reasonText}</Text>
<Text style={[a.text_md, a.leading_snug]}>
Don't have access to{' '}
<Text style={[a.text_md, a.leading_snug, a.font_bold]}>
{currentAccount?.email}
</Text>
?{' '}
<InlineLinkText
to="#"
label={_(msg`Change email address`)}
style={[a.text_md, a.leading_snug]}
onPress={e => {
e.preventDefault()
control.close(() => {
openModal({name: 'change-email'})
})
return false
}}>
<Trans>Change your email address</Trans>
</InlineLinkText>
.
</Text>
</View>
) : (
<Text style={[a.text_md, a.leading_snug]}>
<Trans> <Trans>
You'll receive an email at{' '} You'll receive an email at{' '}
<Text style={[a.text_md, a.leading_snug, a.font_bold]}> <Text style={[a.text_md, a.leading_snug, a.font_bold]}>
@@ -171,15 +195,14 @@ export function Inner({
}}> }}>
<Trans>Need to change it?</Trans> <Trans>Need to change it?</Trans>
</InlineLinkText> </InlineLinkText>
</>
) : (
reasonText
)}
</>
) : (
uiStrings[currentStep].message
)}
</Text> </Text>
)}
</View>
) : (
<Text style={[a.text_md, a.leading_snug]}>
{uiStrings[currentStep].message}
</Text>
)}
</View> </View>
{currentStep === 'StepTwo' ? ( {currentStep === 'StepTwo' ? (
<View> <View>
+14 -2
View File
@@ -1,4 +1,5 @@
import {useServiceConfigQuery} from '#/state/queries/email-verification-required' import {useServiceConfigQuery} from '#/state/queries/email-verification-required'
import {useProfileQuery} from '#/state/queries/profile'
import {useSession} from '#/state/session' import {useSession} from '#/state/session'
import {BSKY_SERVICE} from '../constants' import {BSKY_SERVICE} from '../constants'
import {getHostnameFromUrl} from '../strings/url-helpers' import {getHostnameFromUrl} from '../strings/url-helpers'
@@ -7,13 +8,24 @@ export function useEmail() {
const {currentAccount} = useSession() const {currentAccount} = useSession()
const {data: serviceConfig} = useServiceConfigQuery() const {data: serviceConfig} = useServiceConfigQuery()
const {data: profile} = useProfileQuery({did: currentAccount?.did})
const checkEmailConfirmed = !!serviceConfig?.checkEmailConfirmed
const isNewEnough =
!!profile?.createdAt &&
Date.parse(profile.createdAt) >= Date.parse('2024-11-16T02:00:00.000Z')
const isSelfHost = const isSelfHost =
serviceConfig?.checkEmailConfirmed &&
currentAccount && currentAccount &&
getHostnameFromUrl(currentAccount.service) !== getHostnameFromUrl(currentAccount.service) !==
getHostnameFromUrl(BSKY_SERVICE) getHostnameFromUrl(BSKY_SERVICE)
const needsEmailVerification = !isSelfHost && !currentAccount?.emailConfirmed
const needsEmailVerification =
!isSelfHost &&
checkEmailConfirmed &&
!!currentAccount?.emailConfirmed &&
isNewEnough
return {needsEmailVerification} return {needsEmailVerification}
} }