import React from 'react' import {View, ViewStyle} from 'react-native' import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, flatten, useTheme} from '#/alf' import {useItemContext} from '#/components/forms/Toggle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {RichText} from '#/components/RichText' import {Text} from '#/components/Typography' export function SuggestedAccountCard({ profile, moderationOpts, }: { profile: AppBskyActorDefs.ProfileViewDetailed moderationOpts: ReturnType }) { const t = useTheme() const ctx = useItemContext() const moderation = moderateProfile(profile, moderationOpts!) const styles = React.useMemo(() => { const light = t.name === 'light' const base: ViewStyle[] = [t.atoms.bg_contrast_50] const hover: ViewStyle[] = [t.atoms.bg_contrast_25] const selected: ViewStyle[] = [ { backgroundColor: light ? t.palette.primary_50 : t.palette.primary_950, }, ] const selectedHover: ViewStyle[] = [ { backgroundColor: light ? t.palette.primary_25 : t.palette.primary_975, }, ] const checkboxBase: ViewStyle[] = [t.atoms.bg] const checkboxSelected: ViewStyle[] = [ { backgroundColor: t.palette.primary_500, }, ] const avatarBase: ViewStyle[] = [t.atoms.bg_contrast_100] const avatarSelected: ViewStyle[] = [ { backgroundColor: light ? t.palette.primary_100 : t.palette.primary_900, }, ] return { base, hover: flatten(hover), selected: flatten(selected), selectedHover: flatten(selectedHover), checkboxBase: flatten(checkboxBase), checkboxSelected: flatten(checkboxSelected), avatarBase: flatten(avatarBase), avatarSelected: flatten(avatarSelected), } }, [t]) return ( {profile.displayName} {profile.handle} {ctx.selected && } {profile.description && ( <> )} ) } export function SuggestedAccountCardPlaceholder() { const t = useTheme() return ( ) }