forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {View} from 'react-native'
2import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
3
4import {sanitizeDisplayName} from '#/lib/strings/display-names'
5import {sanitizeHandle} from '#/lib/strings/handles'
6import {type Shadow} from '#/state/cache/types'
7import {atoms as a, platform, useBreakpoints, useTheme} from '#/alf'
8import {Text} from '#/components/Typography'
9import {VerificationCheckButton} from '#/components/verification/VerificationCheckButton'
10
11export function ProfileHeaderDisplayName({
12 profile,
13 moderation,
14}: {
15 profile: Shadow<AppBskyActorDefs.ProfileViewDetailed>
16 moderation: ModerationDecision
17}) {
18 const t = useTheme()
19 const {gtMobile} = useBreakpoints()
20
21 return (
22 <View>
23 <Text
24 emoji
25 testID="profileHeaderDisplayName"
26 style={[
27 t.atoms.text,
28 gtMobile ? a.text_4xl : a.text_3xl,
29 a.self_start,
30 a.font_bold,
31 ]}>
32 {sanitizeDisplayName(
33 profile.displayName || sanitizeHandle(profile.handle),
34 moderation.ui('displayName'),
35 )}
36 <View
37 style={[
38 a.pl_xs,
39 {
40 marginTop: platform({ios: 2}),
41 },
42 ]}>
43 <VerificationCheckButton profile={profile} size="lg" />
44 </View>
45 </Text>
46 </View>
47 )
48}