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