Bluesky app fork with some witchin' additions 馃挮
at main 65 lines 2.1 kB view raw
1import React from 'react' 2import {msg} from '@lingui/core/macro' 3import {useLingui} from '@lingui/react' 4import {Plural} from '@lingui/react/macro' 5import {useFocusEffect} from '@react-navigation/native' 6 7import {useSetTitle} from '#/lib/hooks/useSetTitle' 8import { 9 type CommonNavigatorParams, 10 type NativeStackScreenProps, 11} from '#/lib/routes/types' 12import {sanitizeDisplayName} from '#/lib/strings/display-names' 13import {useProfileQuery} from '#/state/queries/profile' 14import {useResolveDidQuery} from '#/state/queries/resolve-uri' 15import {useSetMinimalShellMode} from '#/state/shell' 16import {ProfileFollows as ProfileFollowsComponent} from '#/view/com/profile/ProfileFollows' 17import * as Layout from '#/components/Layout' 18 19type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileFollows'> 20export const ProfileFollowsScreen = ({route}: Props) => { 21 const {name} = route.params 22 const {_} = useLingui() 23 const setMinimalShellMode = useSetMinimalShellMode() 24 25 const {data: resolvedDid} = useResolveDidQuery(name) 26 const {data: profile} = useProfileQuery({ 27 did: resolvedDid, 28 }) 29 30 useSetTitle( 31 profile ? _(msg`People followed by @${profile.handle}`) : undefined, 32 ) 33 34 useFocusEffect( 35 React.useCallback(() => { 36 setMinimalShellMode(false) 37 }, [setMinimalShellMode]), 38 ) 39 40 return ( 41 <Layout.Screen testID="profileFollowsScreen"> 42 <Layout.Header.Outer> 43 <Layout.Header.BackButton /> 44 <Layout.Header.Content> 45 {profile && ( 46 <> 47 <Layout.Header.TitleText> 48 {sanitizeDisplayName(profile.displayName || profile.handle)} 49 </Layout.Header.TitleText> 50 <Layout.Header.SubtitleText> 51 <Plural 52 value={profile.followsCount ?? 0} 53 one="# following" 54 other="# following" 55 /> 56 </Layout.Header.SubtitleText> 57 </> 58 )} 59 </Layout.Header.Content> 60 <Layout.Header.Slot /> 61 </Layout.Header.Outer> 62 <ProfileFollowsComponent name={name} /> 63 </Layout.Screen> 64 ) 65}