···56 const {status, lastInitiatedAt} = aa.state
57 const isBlocked = status === aa.Status.Blocked
58 const hasInitiated = !!lastInitiatedAt
59+ const hasCompletedFlow = status === aa.Status.Assured
60 const timeAgo = lastInitiatedAt
61 ? getTimeAgo(lastInitiatedAt, new Date())
62 : null
···86 </View>
87 </View>
8889+ <View style={[a.pb_md, a.gap_sm]}>
90 <Text style={[a.text_sm, a.leading_snug]}>{copy.notice}</Text>
91+ {hasCompletedFlow && (
92+ <Text style={[a.text_sm, a.leading_snug]}>
93+ <Trans>
94+ If you are 18 years of age or older and want to try again,
95+ click the button below and use a different verification method
96+ if one is available in your region. If you have questions or
97+ concerns,{' '}
98+ <InlineLinkText
99+ label={_(msg`Contact our support team`)}
100+ {...createStaticClick(() => {
101+ appealControl.open()
102+ })}>
103+ our support team can help.
104+ </InlineLinkText>
105+ </Trans>
106+ </Text>
107+ )}
108109 {IS_NATIVE && (
110 <>
···59 <View style={[a.gap_sm, a.pb_lg]}>
60 <Text style={[a.text_xl, a.leading_snug, a.font_bold]}>
61 <Trans>
62- You must complete age assurance in order to access this screen.
63 </Trans>
64 </Text>
65
···59 <View style={[a.gap_sm, a.pb_lg]}>
60 <Text style={[a.text_xl, a.leading_snug, a.font_bold]}>
61 <Trans>
62+ We're sorry, you cannot access this screen at this time.
63 </Trans>
64 </Text>
65
···2import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
4005export function useAgeAssuranceCopy() {
6 const {_} = useLingui()
00078 return useMemo(() => {
9 return {
10- notice: _(
11- msg`Due to laws in your region, certain features on Bluesky are currently restricted until you're able to verify you're an adult.`,
12- ),
000013 banner: _(
14- msg`The laws in your location require you to verify you're an adult to access certain features. Tap to learn more.`,
15 ),
16 chatsInfoText: _(
17 msg`Don't worry! All existing messages and settings are saved and will be available after you verify you're an adult.`,
18 ),
19 }
20- }, [_])
21}
···2import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45+import {useAgeAssurance} from '#/ageAssurance'
6+7export function useAgeAssuranceCopy() {
8 const {_} = useLingui()
9+ const aa = useAgeAssurance()
10+11+ const hasCompletedFlow = aa.state.status === aa.Status.Assured
1213 return useMemo(() => {
14 return {
15+ notice: hasCompletedFlow
16+ ? _(
17+ msg`You have completed the Age Assurance process, but based on the results, we cannot be sure that you are 18 years of age or older. Due to laws in your region, certain features on Bluesky must remain restricted until you're able to verify you're an adult.`,
18+ )
19+ : _(
20+ msg`Due to laws in your region, certain features on Bluesky are currently restricted until you're able to verify you're an adult.`,
21+ ),
22 banner: _(
23+ msg`The laws in your region require you to verify you're an adult to access certain features. Tap to learn more.`,
24 ),
25 chatsInfoText: _(
26 msg`Don't worry! All existing messages and settings are saved and will be available after you verify you're an adult.`,
27 ),
28 }
29+ }, [_, hasCompletedFlow])
30}