Bluesky app fork with some witchin' additions 馃挮
at main 53 lines 1.5 kB view raw
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 {PdsBadge} from '#/components/PdsBadge' 9import {Text} from '#/components/Typography' 10import {VerificationCheckButton} from '#/components/verification/VerificationCheckButton' 11 12export function ProfileHeaderDisplayName({ 13 profile, 14 moderation, 15}: { 16 profile: Shadow<AppBskyActorDefs.ProfileViewDetailed> 17 moderation: ModerationDecision 18}) { 19 const t = useTheme() 20 const {gtMobile} = useBreakpoints() 21 22 return ( 23 <View> 24 <Text 25 emoji 26 testID="profileHeaderDisplayName" 27 style={[ 28 t.atoms.text, 29 gtMobile ? a.text_4xl : a.text_3xl, 30 a.self_start, 31 a.font_bold, 32 ]}> 33 {sanitizeDisplayName( 34 profile.displayName || sanitizeHandle(profile.handle), 35 moderation.ui('displayName'), 36 )} 37 <View 38 style={[ 39 a.pl_xs, 40 a.flex_row, 41 a.gap_2xs, 42 a.align_center, 43 { 44 marginTop: platform({ios: 2}), 45 }, 46 ]}> 47 <PdsBadge did={profile.did} size="lg" /> 48 <VerificationCheckButton profile={profile} size="lg" /> 49 </View> 50 </Text> 51 </View> 52 ) 53}