Bluesky app fork with some witchin' additions 馃挮
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

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