diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index f09ff522a3..b27db308f1 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,8 @@ function HashtagScreenTab({ const {_} = useLingui() const initialNumToRender = useInitialNumToRender() const [isPTR, setIsPTR] = React.useState(false) + const t = useTheme() + const {hasSession} = useSession() const queryParam = React.useMemo(() => { if (!author) return fullTag @@ -194,6 +202,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 (!hasSession) { + return ( + + + + + Sign in + + or + + create an account + + + + to search for news, sports, politics, and everything else + happening on Bluesky. + + + + + ) + } + return ( <> {posts.length < 1 ? (