Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

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

at main 59 lines 1.9 kB view raw
1import {msg} from '@lingui/core/macro' 2import {useLingui} from '@lingui/react' 3import {Plural, Trans} from '@lingui/react/macro' 4 5import {useSetTitle} from '#/lib/hooks/useSetTitle' 6import { 7 type CommonNavigatorParams, 8 type NativeStackScreenProps, 9} from '#/lib/routes/types' 10import {makeRecordUri} from '#/lib/strings/url-helpers' 11import {usePostQuery} from '#/state/queries/post' 12import {useProfileQuery} from '#/state/queries/profile' 13import {useResolveDidQuery} from '#/state/queries/resolve-uri' 14import {PostRepostedBy as PostRepostedByComponent} from '#/view/com/post-thread/PostRepostedBy' 15import * as Layout from '#/components/Layout' 16 17type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostRepostedBy'> 18export const PostRepostedByScreen = ({route}: Props) => { 19 const {_} = useLingui() 20 const {name, rkey} = route.params 21 const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey) 22 const {data: post} = usePostQuery(uri) 23 24 const {data: resolvedDid} = useResolveDidQuery(name) 25 const {data: profile} = useProfileQuery({did: resolvedDid}) 26 27 useSetTitle(profile ? _(msg`Post by @${profile.handle}`) : undefined) 28 29 let quoteCount 30 if (post) { 31 quoteCount = post.repostCount 32 } 33 34 return ( 35 <Layout.Screen> 36 <Layout.Header.Outer> 37 <Layout.Header.BackButton /> 38 <Layout.Header.Content> 39 {post && ( 40 <> 41 <Layout.Header.TitleText> 42 <Trans>Reposted By</Trans> 43 </Layout.Header.TitleText> 44 <Layout.Header.SubtitleText> 45 <Plural 46 value={quoteCount ?? 0} 47 one="# repost" 48 other="# reposts" 49 /> 50 </Layout.Header.SubtitleText> 51 </> 52 )} 53 </Layout.Header.Content> 54 <Layout.Header.Slot /> 55 </Layout.Header.Outer> 56 <PostRepostedByComponent uri={uri} /> 57 </Layout.Screen> 58 ) 59}