diff options
Diffstat (limited to 'src/screens')
-rw-r--r-- | src/screens/Profile/ProfileSearch.tsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/screens/Profile/ProfileSearch.tsx b/src/screens/Profile/ProfileSearch.tsx new file mode 100644 index 000000000..d91dc973e --- /dev/null +++ b/src/screens/Profile/ProfileSearch.tsx @@ -0,0 +1,42 @@ +import {useMemo} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' +import {useProfileQuery} from '#/state/queries/profile' +import {useResolveDidQuery} from '#/state/queries/resolve-uri' +import {useSession} from '#/state/session' +import {SearchScreenShell} from '#/view/screens/Search/Search' + +type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileSearch'> +export const ProfileSearchScreen = ({route}: Props) => { + const {name, q: queryParam = ''} = route.params + const {_} = useLingui() + const {currentAccount} = useSession() + + const {data: resolvedDid} = useResolveDidQuery(name) + const {data: profile} = useProfileQuery({did: resolvedDid}) + + const fixedParams = useMemo( + () => ({ + from: profile?.handle ?? name, + }), + [profile?.handle, name], + ) + + return ( + <SearchScreenShell + navButton="back" + inputPlaceholder={ + profile + ? currentAccount?.did === profile.did + ? _(msg`Search my posts`) + : _(msg`Search @${profile.handle}'s posts`) + : _(msg`Search...`) + } + fixedParams={fixedParams} + queryParam={queryParam} + testID="searchPostsScreen" + /> + ) +} |