···122122123123 return (
124124 <>
125125- <ScrollView
126126- contentContainerStyle={[
127127- a.px_2xl,
128128- {
129129- paddingTop: isWeb ? a.p_5xl.padding : insets.top + a.p_2xl.padding,
130130- paddingBottom: 100,
131131- },
132132- ]}>
133133- <View
134134- style={[
135135- a.mx_auto,
136136- a.w_full,
137137- web({
138138- maxWidth: 380,
139139- paddingTop: gtPhone ? '8vh' : undefined,
140140- }),
125125+ <View style={[a.util_screen_outer, a.flex_1]}>
126126+ <ScrollView
127127+ contentContainerStyle={[
128128+ a.px_2xl,
141129 {
142142- gap: 32,
130130+ paddingTop: isWeb
131131+ ? a.p_5xl.padding
132132+ : insets.top + a.p_2xl.padding,
133133+ paddingBottom: 100,
143134 },
144135 ]}>
145145- <View style={[a.align_start]}>
146146- <AgeAssuranceBadge />
147147- </View>
136136+ <View
137137+ style={[
138138+ a.mx_auto,
139139+ a.w_full,
140140+ web({
141141+ maxWidth: 380,
142142+ paddingTop: gtPhone ? '8vh' : undefined,
143143+ }),
144144+ {
145145+ gap: 32,
146146+ },
147147+ ]}>
148148+ <View style={[a.align_start]}>
149149+ <AgeAssuranceBadge />
150150+ </View>
151151+152152+ {hasDeclaredAge ? (
153153+ <>
154154+ {isAARegion ? (
155155+ <>
156156+ <View style={[a.gap_lg]}>
157157+ <Text style={[textStyles]}>
158158+ <Trans>Hey there!</Trans>
159159+ </Text>
160160+ <Text style={[textStyles]}>
161161+ <Trans>
162162+ You are accessing Bluesky from a region that legally
163163+ requires us to verify your age before allowing you to
164164+ access the app.
165165+ </Trans>
166166+ </Text>
167167+168168+ {!isBlocked && birthdateUpdateText}
169169+ </View>
148170149149- {hasDeclaredAge ? (
150150- <>
151151- {isAARegion ? (
152152- <>
171171+ <AccessSection />
172172+ </>
173173+ ) : (
153174 <View style={[a.gap_lg]}>
154175 <Text style={[textStyles]}>
155155- <Trans>Hey there!</Trans>
156156- </Text>
157157- <Text style={[textStyles]}>
158176 <Trans>
159159- You are accessing Bluesky from a region that legally
160160- requires us to verify your age before allowing you to
161161- access the app.
177177+ Unfortunately, the birthdate you have saved to your
178178+ profile makes you too young to access Bluesky.
162179 </Trans>
163180 </Text>
164181165165- {!isBlocked && birthdateUpdateText}
182182+ {birthdateUpdateText}
166183 </View>
184184+ )}
185185+ </>
186186+ ) : (
187187+ <View style={[a.gap_lg]}>
188188+ <Text style={[textStyles]}>
189189+ <Trans>Hi there!</Trans>
190190+ </Text>
191191+ <Text style={[textStyles]}>
192192+ <Trans>
193193+ In order to provide an age-appropriate experience, we need
194194+ to know your birthdate. This is a one-time thing, and your
195195+ data will be kept private.
196196+ </Trans>
197197+ </Text>
198198+ <Text style={[textStyles]}>
199199+ <Trans>
200200+ Set your birthdate below and we'll get you back to posting
201201+ and exploring in no time!
202202+ </Trans>
203203+ </Text>
204204+ <Button
205205+ color="primary"
206206+ size="large"
207207+ label={_(msg`Click here to update your birthdate`)}
208208+ onPress={() => birthdateControl.open()}>
209209+ <ButtonText>
210210+ <Trans>Add your birthdate</Trans>
211211+ </ButtonText>
212212+ </Button>
167213168168- <AccessSection />
169169- </>
170170- ) : (
171171- <View style={[a.gap_lg]}>
172172- <Text style={[textStyles]}>
214214+ {isUsingAppPassword && (
215215+ <Admonition type="info">
173216 <Trans>
174174- Unfortunately, the birthdate you have saved to your
175175- profile makes you too young to access Bluesky.
217217+ Hmm, it looks like you're logged in with an{' '}
218218+ <Span style={[a.italic]}>App Password</Span>. To set your
219219+ birthdate, you'll need to log in with your main account
220220+ password, or ask whomever controls this account to do so.
176221 </Trans>
177177- </Text>
222222+ </Admonition>
223223+ )}
224224+ </View>
225225+ )}
178226179179- {birthdateUpdateText}
180180- </View>
181181- )}
182182- </>
183183- ) : (
184184- <View style={[a.gap_lg]}>
185185- <Text style={[textStyles]}>
186186- <Trans>Hi there!</Trans>
187187- </Text>
188188- <Text style={[textStyles]}>
227227+ <View style={[a.pt_lg, a.gap_xl]}>
228228+ <Logo width={120} textFill={t.atoms.text.color} />
229229+ <Text style={[a.text_sm, a.italic, t.atoms.text_contrast_medium]}>
189230 <Trans>
190190- In order to provide an age-appropriate experience, we need to
191191- know your birthdate. This is a one-time thing, and your data
192192- will be kept private.
231231+ To log out,{' '}
232232+ <SimpleInlineLinkText
233233+ label={_(msg`Click here to log out`)}
234234+ {...createStaticClick(() => {
235235+ onPressLogout()
236236+ })}>
237237+ click here
238238+ </SimpleInlineLinkText>
239239+ .
193240 </Trans>
194241 </Text>
195195- <Text style={[textStyles]}>
196196- <Trans>
197197- Set your birthdate below and we'll get you back to posting and
198198- exploring in no time!
199199- </Trans>
200200- </Text>
201201- <Button
202202- color="primary"
203203- size="large"
204204- label={_(msg`Click here to update your birthdate`)}
205205- onPress={() => birthdateControl.open()}>
206206- <ButtonText>
207207- <Trans>Add your birthdate</Trans>
208208- </ButtonText>
209209- </Button>
210210-211211- {isUsingAppPassword && (
212212- <Admonition type="info">
213213- <Trans>
214214- Hmm, it looks like you're logged in with an{' '}
215215- <Span style={[a.italic]}>App Password</Span>. To set your
216216- birthdate, you'll need to log in with your main account
217217- password, or ask whomever controls this account to do so.
218218- </Trans>
219219- </Admonition>
220220- )}
221242 </View>
222222- )}
223223-224224- <View style={[a.pt_lg, a.gap_xl]}>
225225- <Logo width={120} textFill={t.atoms.text.color} />
226226- <Text style={[a.text_sm, a.italic, t.atoms.text_contrast_medium]}>
227227- <Trans>
228228- To log out,{' '}
229229- <SimpleInlineLinkText
230230- label={_(msg`Click here to log out`)}
231231- {...createStaticClick(() => {
232232- onPressLogout()
233233- })}>
234234- click here
235235- </SimpleInlineLinkText>
236236- .
237237- </Trans>
238238- </Text>
239243 </View>
240240- </View>
241241- </ScrollView>
244244+ </ScrollView>
245245+ </View>
242246243247 <BirthDateSettingsDialog control={birthdateControl} />
244248
-9
src/screens/Deactivated.tsx
···33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44import {msg, Trans} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
66-import {useFocusEffect} from '@react-navigation/native'
76import {useQueryClient} from '@tanstack/react-query'
8798import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
···1514 useSession,
1615 useSessionApi,
1716} from '#/state/session'
1818-import {useSetMinimalShellMode} from '#/state/shell'
1917import {useLoggedOutViewControls} from '#/state/shell/logged-out'
2018import {Logo} from '#/view/icons/Logo'
2119import {atoms as a, useTheme} from '#/alf'
···3735 const {onPressSwitchAccount, pendingDid} = useAccountSwitcher()
3836 const {setShowLoggedOut} = useLoggedOutViewControls()
3937 const hasOtherAccounts = accounts.length > 1
4040- const setMinimalShellMode = useSetMinimalShellMode()
4138 const {logoutCurrentAccount} = useSessionApi()
4239 const agent = useAgent()
4340 const [pending, setPending] = React.useState(false)
4441 const [error, setError] = React.useState<string | undefined>()
4542 const queryClient = useQueryClient()
4646-4747- useFocusEffect(
4848- React.useCallback(() => {
4949- setMinimalShellMode(true)
5050- }, [setMinimalShellMode]),
5151- )
52435344 const onSelectAccount = React.useCallback(
5445 (account: SessionAccount) => {
+9-16
src/screens/Takendown.tsx
···11import {useMemo, useState} from 'react'
22-import {Modal, View} from 'react-native'
33-import {SystemBars} from 'react-native-edge-to-edge'
22+import {View} from 'react-native'
43import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
54import {useSafeAreaInsets} from 'react-native-safe-area-context'
65import {type ComAtprotoAdminDefs, ToolsOzoneReportDefs} from '@atproto/api'
···1514} from '#/lib/constants'
1615import {useEnableKeyboardController} from '#/lib/hooks/useEnableKeyboardController'
1716import {cleanError} from '#/lib/strings/errors'
1818-import {isIOS, isWeb} from '#/platform/detection'
1717+import {isWeb} from '#/platform/detection'
1918import {useAgent, useSession, useSessionApi} from '#/state/session'
2019import {CharProgress} from '#/view/com/composer/char-progress/CharProgress'
2120import {Logo} from '#/view/icons/Logo'
2222-import {atoms as a, native, useBreakpoints, useTheme, web} from '#/alf'
2121+import {atoms as a, useBreakpoints, useTheme} from '#/alf'
2322import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2423import * as TextField from '#/components/forms/TextField'
2525-import {InlineLinkText} from '#/components/Link'
2424+import {SimpleInlineLinkText} from '#/components/Link'
2625import {Loader} from '#/components/Loader'
2726import {P, Text} from '#/components/Typography'
2827···130129 useEnableKeyboardController(true)
131130132131 return (
133133- <Modal
134134- visible
135135- animationType={native('slide')}
136136- presentationStyle="formSheet"
137137- style={[web(a.util_screen_outer)]}>
138138- {isIOS && <SystemBars style={{statusBar: 'light'}} />}
132132+ <View style={[a.util_screen_outer, a.flex_1]}>
139133 <KeyboardAwareScrollView style={[a.flex_1, t.atoms.bg]} centerContent>
140134 <View
141135 style={[
···222216 <P style={[t.atoms.text_contrast_medium]}>
223217 <Trans>
224218 Your account was found to be in violation of the{' '}
225225- <InlineLinkText
219219+ <SimpleInlineLinkText
226220 label={_(msg`Bluesky Social Terms of Service`)}
227221 to="https://bsky.social/about/support/tos"
228228- style={[a.text_md, a.leading_normal]}
229229- overridePresentation>
222222+ style={[a.text_md, a.leading_normal]}>
230223 Bluesky Social Terms of Service
231231- </InlineLinkText>
224224+ </SimpleInlineLinkText>
232225 . You have been sent an email outlining the specific violation
233226 and suspension period, if applicable. You can appeal this
234227 decision if you believe it was made in error.
···267260 </View>
268261 </View>
269262 )}
270270- </Modal>
263263+ </View>
271264 )
272265}