import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {usePalette} from 'lib/hooks/usePalette' import {DesktopSearch} from './Search' import {DesktopFeeds} from './Feeds' import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' import {s} from 'lib/styles' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {formatCount} from 'view/com/util/numeric/format' import {useModalControls} from '#/state/modals' import {useLingui} from '@lingui/react' import {Plural, Trans, msg, plural} from '@lingui/macro' import {useSession} from '#/state/session' import {useInviteCodesQuery} from '#/state/queries/invites' export function DesktopRightNav({routeName}: {routeName: string}) { const pal = usePalette('default') const palError = usePalette('error') const {_} = useLingui() const {isSandbox, hasSession, currentAccount} = useSession() const {isTablet} = useWebMediaQueries() if (isTablet) { return null } return ( {routeName === 'Search' ? ( ) : ( <> {hasSession && ( )} )} {isSandbox ? ( SANDBOX. Posts and accounts are not permanent. ) : undefined} {hasSession && ( <>  ·  )}  ·   ·  {hasSession && } ) } function InviteCodes() { const pal = usePalette('default') const {openModal} = useModalControls() const {data: invites} = useInviteCodesQuery() const invitesAvailable = invites?.available?.length ?? 0 const {_} = useLingui() const onPress = React.useCallback(() => { openModal({name: 'invite-codes'}) }, [openModal]) if (!invites) { return null } if (invites?.disabled) { return ( Your invite codes are hidden when logged in using an App Password ) } return ( 0 ? pal.link : pal.textLight, ]} size={16} /> 0 ? pal.link : pal.textLight}> ) } const styles = StyleSheet.create({ rightNav: { position: 'absolute', // @ts-ignore web only left: 'calc(50vw + 320px)', width: 300, maxHeight: '100%', overflowY: 'auto', }, message: { paddingVertical: 18, paddingHorizontal: 12, }, messageLine: { marginBottom: 10, }, inviteCodes: { borderTopWidth: 1, paddingHorizontal: 12, paddingVertical: 12, flexDirection: 'row', }, inviteCodesIcon: { marginTop: 2, marginRight: 6, flexShrink: 0, }, desktopFeedsContainer: { borderTopWidth: 1, borderBottomWidth: 1, marginTop: 18, marginBottom: 18, }, })