Bluesky app fork with some witchin' additions 馃挮
at readme-update 42 lines 1.4 kB view raw
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}