forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {useCallback} from 'react'
2import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
4import {useFocusEffect} from '@react-navigation/native'
5
6import {useSetTitle} from '#/lib/hooks/useSetTitle'
7import {
8 type CommonNavigatorParams,
9 type NativeStackScreenProps,
10} from '#/lib/routes/types'
11import {makeRecordUri} from '#/lib/strings/url-helpers'
12import {useProfileQuery} from '#/state/queries/profile'
13import {useResolveDidQuery} from '#/state/queries/resolve-uri'
14import {useSetMinimalShellMode} from '#/state/shell'
15import {PostThread} from '#/screens/PostThread'
16import * as Layout from '#/components/Layout'
17
18type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostThread'>
19export function PostThreadScreen({route}: Props) {
20 const {_} = useLingui()
21 const setMinimalShellMode = useSetMinimalShellMode()
22
23 const {name, rkey} = route.params
24 const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
25
26 const {data: resolvedDid} = useResolveDidQuery(name)
27 const {data: profile} = useProfileQuery({did: resolvedDid})
28
29 useSetTitle(profile ? _(msg`Skeet by @${profile.handle}`) : undefined)
30
31 useFocusEffect(
32 useCallback(() => {
33 setMinimalShellMode(false)
34 }, [setMinimalShellMode]),
35 )
36
37 return (
38 <Layout.Screen testID="postThreadScreen">
39 <PostThread uri={uri} />
40 </Layout.Screen>
41 )
42}