From 34f2cc2322d8a82989c9104108e8937dc98471a4 Mon Sep 17 00:00:00 2001 From: Chenyu Huang Date: Fri, 10 Oct 2025 14:17:57 -0700 Subject: [PATCH] prompt user to log in on hashtag screen --- src/screens/Hashtag.tsx | 56 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index f09ff522a3..a5086fc035 100644 --- a/src/screens/Hashtag.tsx +++ b/src/screens/Hashtag.tsx @@ -1,7 +1,7 @@ import React from 'react' import {type ListRenderItemInfo, View} from 'react-native' import {type AppBskyFeedDefs} from '@atproto/api' -import {msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {type NativeStackScreenProps} from '@react-navigation/native-stack' @@ -14,16 +14,22 @@ import {cleanError} from '#/lib/strings/errors' import {sanitizeHandle} from '#/lib/strings/handles' import {enforceLen} from '#/lib/strings/helpers' import {useSearchPostsQuery} from '#/state/queries/search-posts' +import {useSession} from '#/state/session' import {useSetMinimalShellMode} from '#/state/shell' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useCloseAllActiveElements} from '#/state/util' import {Pager} from '#/view/com/pager/Pager' import {TabBar} from '#/view/com/pager/TabBar' import {Post} from '#/view/com/post/Post' import {List} from '#/view/com/util/List' -import {atoms as a, web} from '#/alf' +import {atoms as a, useTheme, web} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {ArrowOutOfBoxModified_Stroke2_Corner2_Rounded as Share} from '#/components/icons/ArrowOutOfBox' import * as Layout from '#/components/Layout' +import {InlineLinkText} from '#/components/Link' import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' +import {SearchError} from '#/components/SearchError' +import {Text} from '#/components/Typography' const renderItem = ({item}: ListRenderItemInfo) => { return @@ -161,6 +167,9 @@ function HashtagScreenTab({ const {_} = useLingui() const initialNumToRender = useInitialNumToRender() const [isPTR, setIsPTR] = React.useState(false) + const t = useTheme() + const {currentAccount} = useSession() + const isLoggedin = Boolean(currentAccount?.did) const queryParam = React.useMemo(() => { if (!author) return fullTag @@ -194,6 +203,49 @@ function HashtagScreenTab({ fetchNextPage() }, [isFetchingNextPage, hasNextPage, error, fetchNextPage]) + const closeAllActiveElements = useCloseAllActiveElements() + const {requestSwitchToAccount} = useLoggedOutViewControls() + + const showSignIn = () => { + closeAllActiveElements() + requestSwitchToAccount({requestedAccount: 'none'}) + } + + const showCreateAccount = () => { + closeAllActiveElements() + requestSwitchToAccount({requestedAccount: 'new'}) + } + + if (!isLoggedin) { + return ( + + + + + Sign in + + or + + create an account + + + + to search for news, sports, politics, and everything else + happening on Bluesky. + + + + + ) + } + return ( <> {posts.length < 1 ? (