import {useEffect, useState} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/core' import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants' import {useKawaiiMode} from '#/state/preferences/kawaii' import {useSession} from '#/state/session' import {DesktopFeeds} from '#/view/shell/desktop/Feeds' import {DesktopSearch} from '#/view/shell/desktop/Search' import {SidebarTrendingTopics} from '#/view/shell/desktop/SidebarTrendingTopics' import { atoms as a, useGutters, useLayoutBreakpoints, useTheme, web, } from '#/alf' import {AppLanguageDropdown} from '#/components/AppLanguageDropdown' import {Divider} from '#/components/Divider' import {CENTER_COLUMN_OFFSET} from '#/components/Layout' import {InlineLinkText} from '#/components/Link' import {ProgressGuideList} from '#/components/ProgressGuide/List' import {Text} from '#/components/Typography' function useWebQueryParams() { const navigation = useNavigation() const [params, setParams] = useState>({}) useEffect(() => { return navigation.addListener('state', e => { try { const {state} = e.data const lastRoute = state.routes[state.routes.length - 1] setParams(lastRoute.params) } catch (err) {} }) }, [navigation, setParams]) return params } export function DesktopRightNav({routeName}: {routeName: string}) { const t = useTheme() const {_} = useLingui() const {hasSession, currentAccount} = useSession() const kawaii = useKawaiiMode() const gutters = useGutters(['base', 0, 'base', 'wide']) const isSearchScreen = routeName === 'Search' const webqueryParams = useWebQueryParams() const searchQuery = webqueryParams?.q const showTrending = !isSearchScreen || (isSearchScreen && !!searchQuery) const {rightNavVisible, centerColumnOffset, leftNavMinimal} = useLayoutBreakpoints() if (!rightNavVisible) { return null } const width = centerColumnOffset ? 250 : 300 return ( {!isSearchScreen && } {hasSession && ( <> )} {showTrending && } {hasSession && ( <> {_(msg`Feedback`)} {' • '} )} {_(msg`Privacy`)} {' • '} {_(msg`Terms`)} {' • '} {_(msg`Help`)} {kawaii && ( Logo by{' '} @sawaratsuki.bsky.social )} {!hasSession && leftNavMinimal && ( )} ) }