import React from 'react' import {ScrollView, View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {logEvent} from '#/lib/statsig/statsig' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSuggestedFollowsByActorQuery} from '#/state/queries/suggested-follows' import {isWeb} from 'platform/detection' import {atoms as a, useTheme, ViewStyleProp} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' import * as ProfileCard from '#/components/ProfileCard' import {Text} from '#/components/Typography' const OUTER_PADDING = a.p_md.padding const INNER_PADDING = a.p_lg.padding const TOTAL_HEIGHT = 232 const MOBILE_CARD_WIDTH = 300 function CardOuter({ children, style, }: {children: React.ReactNode | React.ReactNode[]} & ViewStyleProp) { const t = useTheme() return ( {children} ) } export function SuggestedFollowPlaceholder() { const t = useTheme() return ( ) } export function ProfileHeaderSuggestedFollows({ actorDid, requestDismiss, }: { actorDid: string requestDismiss: () => void }) { const t = useTheme() const {_} = useLingui() const {isLoading: isSuggestionsLoading, data} = useSuggestedFollowsByActorQuery({ did: actorDid, }) const moderationOpts = useModerationOpts() const isLoading = isSuggestionsLoading || !moderationOpts return ( Similar accounts {isLoading ? ( <> ) : data ? ( data.suggestions .filter(s => (s.associated?.labeler ? false : true)) .map(profile => ( { logEvent('profile:header:suggestedFollowsCard:press', {}) }} style={[a.flex_1]}> {({hovered, pressed}) => ( )} )) ) : ( )} ) }