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, useBreakpoints, useTheme} from '#/alf'
8import {Text} from '#/components/Typography'
9
10export function ProfileHeaderDisplayName({
11 profile,
12 moderation,
13}: {
14 profile: Shadow<AppBskyActorDefs.ProfileViewDetailed>
15 moderation: ModerationDecision
16}) {
17 const t = useTheme()
18 const {gtMobile} = useBreakpoints()
19
20 return (
21 <View pointerEvents="none">
22 <Text
23 emoji
24 testID="profileHeaderDisplayName"
25 style={[
26 t.atoms.text,
27 gtMobile ? a.text_4xl : a.text_3xl,
28 a.self_start,
29 a.font_bold,
30 ]}>
31 {sanitizeDisplayName(
32 profile.displayName || sanitizeHandle(profile.handle),
33 moderation.ui('displayName'),
34 )}
35 </Text>
36 </View>
37 )
38}