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 {PostLikedBy as PostLikedByComponent} from '#/view/com/post-thread/PostLikedBy'
13import * as Layout from '#/components/Layout'
14
15type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostLikedBy'>
16export const PostLikedByScreen = ({route}: Props) => {
17 const setMinimalShellMode = useSetMinimalShellMode()
18 const {name, rkey} = route.params
19 const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
20 const {data: post} = usePostQuery(uri)
21
22 let likeCount
23 if (post) {
24 likeCount = post.likeCount
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>Liked By</Trans>
42 </Layout.Header.TitleText>
43 <Layout.Header.SubtitleText>
44 <Plural value={likeCount ?? 0} one="# like" other="# likes" />
45 </Layout.Header.SubtitleText>
46 </>
47 )}
48 </Layout.Header.Content>
49 <Layout.Header.Slot />
50 </Layout.Header.Outer>
51 <PostLikedByComponent uri={uri} />
52 </Layout.Screen>
53 )
54}