···11import React from 'react'
22import {View} from 'react-native'
33+import {useWindowDimensions} from 'react-native'
34import {msg, Trans} from '@lingui/macro'
45import {useLingui} from '@lingui/react'
5667import {BSKY_SERVICE} from '#/lib/constants'
78import * as persisted from '#/state/persisted'
99+import {useSession} from '#/state/session'
810import {atoms as a, useBreakpoints, useTheme} from '#/alf'
1111+import {Admonition} from '#/components/Admonition'
912import {Button, ButtonText} from '#/components/Button'
1013import * as Dialog from '#/components/Dialog'
1114import * as TextField from '#/components/forms/TextField'
···2326}) {
2427 const {_} = useLingui()
2528 const t = useTheme()
2929+ const {height} = useWindowDimensions()
2630 const {gtMobile} = useBreakpoints()
2731 const [pdsAddressHistory, setPdsAddressHistory] = React.useState<string[]>(
2832 persisted.get('pdsAddressHistory') || [],
2933 )
3034 const [fixedOption, setFixedOption] = React.useState([BSKY_SERVICE])
3135 const [customAddress, setCustomAddress] = React.useState('')
3636+ const {accounts} = useSession()
3737+3838+ const isFirstTimeUser = accounts.length === 0
32393340 const onClose = React.useCallback(() => {
3441 let url
···6673 ])
67746875 return (
6969- <Dialog.Outer control={control} onClose={onClose}>
7676+ <Dialog.Outer
7777+ control={control}
7878+ onClose={onClose}
7979+ nativeOptions={{minHeight: height / 2}}>
7080 <Dialog.Handle />
7181 <Dialog.ScrollableInner
7282 accessibilityDescribedBy="dialog-description"
7383 accessibilityLabelledBy="dialog-title">
7484 <View style={[a.relative, a.gap_md, a.w_full]}>
7585 <Text nativeID="dialog-title" style={[a.text_2xl, a.font_bold]}>
7676- <Trans>Choose Service</Trans>
8686+ <Trans>Choose your account provider</Trans>
7787 </Text>
7878- <P nativeID="dialog-description" style={[a.text_sm]}>
7979- <Trans>Select the service that hosts your data.</Trans>
8080- </P>
8181-8288 <ToggleButton.Group
8389 label="Preferences"
8490 values={fixedOption}
···98104 </ToggleButton.Button>
99105 </ToggleButton.Group>
100106107107+ {fixedOption[0] === BSKY_SERVICE && isFirstTimeUser && (
108108+ <Admonition type="tip">
109109+ <Trans>
110110+ Bluesky is an open network where you can choose your own
111111+ provider. If you're new here, we recommend sticking with the
112112+ default Bluesky Social option.
113113+ </Trans>
114114+ </Admonition>
115115+ )}
116116+101117 {fixedOption[0] === 'custom' && (
102118 <View
103119 style={[
···148164 a.leading_snug,
149165 a.flex_1,
150166 ]}>
151151- <Trans>
152152- Bluesky is an open network where you can choose your hosting
153153- provider. If you're a developer, you can host your own server.
154154- </Trans>{' '}
167167+ {isFirstTimeUser ? (
168168+ <Trans>
169169+ If you're a developer, you can host your own server.
170170+ </Trans>
171171+ ) : (
172172+ <Trans>
173173+ Bluesky is an open network where you can choose your hosting
174174+ provider. If you're a developer, you can host your own server.
175175+ </Trans>
176176+ )}{' '}
155177 <InlineLinkText
156178 label={_(msg`Learn more about self hosting your PDS.`)}
157179 to="https://atproto.com/guides/self-hosting">