forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import React from 'react'
2import {Plural, Trans} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
4
5import {
6 type CommonNavigatorParams,
7 type NativeStackScreenProps,
8} from '#/lib/routes/types'
9import {makeRecordUri} from '#/lib/strings/url-helpers'
10import {usePostQuery} from '#/state/queries/post'
11import {useSetMinimalShellMode} from '#/state/shell'
12import {PostRepostedBy as PostRepostedByComponent} from '#/view/com/post-thread/PostRepostedBy'
13import * as Layout from '#/components/Layout'
14
15type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostRepostedBy'>
16export const PostRepostedByScreen = ({route}: Props) => {
17 const {name, rkey} = route.params
18 const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
19 const setMinimalShellMode = useSetMinimalShellMode()
20 const {data: post} = usePostQuery(uri)
21
22 let quoteCount
23 if (post) {
24 quoteCount = post.repostCount
25 }
26
27 useFocusEffect(
28 React.useCallback(() => {
29 setMinimalShellMode(false)
30 }, [setMinimalShellMode]),
31 )
32
33 return (
34 <Layout.Screen>
35 <Layout.Header.Outer>
36 <Layout.Header.BackButton />
37 <Layout.Header.Content>
38 {post && (
39 <>
40 <Layout.Header.TitleText>
41 <Trans>Reposted By</Trans>
42 </Layout.Header.TitleText>
43 <Layout.Header.SubtitleText>
44 <Plural
45 value={quoteCount ?? 0}
46 one="# repost"
47 other="# reposts"
48 />
49 </Layout.Header.SubtitleText>
50 </>
51 )}
52 </Layout.Header.Content>
53 <Layout.Header.Slot />
54 </Layout.Header.Outer>
55 <PostRepostedByComponent uri={uri} />
56 </Layout.Screen>
57 )
58}