import React from 'react' import {View} from 'react-native' import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' import {createSanitizedDisplayName} from 'lib/moderation/create-sanitized-display-name' import {sanitizeHandle} from 'lib/strings/handles' import {useProfileShadow} from 'state/cache/profile-shadow' import {useSession} from 'state/session' import {FollowButton} from 'view/com/profile/FollowButton' import {ProfileCardPills} from 'view/com/profile/ProfileCard' import {UserAvatar} from 'view/com/util/UserAvatar' import {atoms as a, useTheme} from '#/alf' import {Link} from '#/components/Link' import {Text} from '#/components/Typography' export function Default({ profile: profileUnshadowed, moderationOpts, logContext = 'ProfileCard', }: { profile: AppBskyActorDefs.ProfileViewDetailed moderationOpts: ModerationOpts logContext?: 'ProfileCard' | 'StarterPackProfilesList' }) { const t = useTheme() const {currentAccount, hasSession} = useSession() const profile = useProfileShadow(profileUnshadowed) const name = createSanitizedDisplayName(profile) const handle = `@${sanitizeHandle(profile.handle)}` const moderation = moderateProfile(profile, moderationOpts) return ( {name} {handle} {hasSession && profile.did !== currentAccount?.did && ( )} {profile.description && ( {profile.description} )} ) } function Wrapper({did, children}: {did: string; children: React.ReactNode}) { return ( {children} ) }