Bluesky app fork with some witchin' additions 馃挮
at main 63 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 {ProfileFollowers as ProfileFollowersComponent} from '#/view/com/profile/ProfileFollowers' 17import * as Layout from '#/components/Layout' 18 19type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileFollowers'> 20export const ProfileFollowersScreen = ({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(profile ? _(msg`People following @${profile.handle}`) : undefined) 31 32 useFocusEffect( 33 React.useCallback(() => { 34 setMinimalShellMode(false) 35 }, [setMinimalShellMode]), 36 ) 37 38 return ( 39 <Layout.Screen testID="profileFollowersScreen"> 40 <Layout.Header.Outer> 41 <Layout.Header.BackButton /> 42 <Layout.Header.Content> 43 {profile && ( 44 <> 45 <Layout.Header.TitleText> 46 {sanitizeDisplayName(profile.displayName || profile.handle)} 47 </Layout.Header.TitleText> 48 <Layout.Header.SubtitleText> 49 <Plural 50 value={profile.followersCount ?? 0} 51 one="# follower" 52 other="# followers" 53 /> 54 </Layout.Header.SubtitleText> 55 </> 56 )} 57 </Layout.Header.Content> 58 <Layout.Header.Slot /> 59 </Layout.Header.Outer> 60 <ProfileFollowersComponent name={name} /> 61 </Layout.Screen> 62 ) 63}