import React from 'react' import {observer} from 'mobx-react-lite' 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 {useStores} from 'state/index' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {pluralize} from 'lib/strings/helpers' import {formatCount} from 'view/com/util/numeric/format' export const DesktopRightNav = observer(function DesktopRightNavImpl() { const store = useStores() const pal = usePalette('default') const palError = usePalette('error') const {isTablet} = useWebMediaQueries() if (isTablet) { return null } return ( {store.session.hasSession && } {store.session.hasSession && } {store.session.isSandbox ? ( SANDBOX. Posts and accounts are not permanent. ) : undefined}  ·   ·   ·  ) }) const InviteCodes = observer(function InviteCodesImpl() { const store = useStores() const pal = usePalette('default') const {invitesAvailable} = store.me const onPress = React.useCallback(() => { store.shell.openModal({name: 'invite-codes'}) }, [store]) return ( 0 ? pal.link : pal.textLight, ]} size={16} /> 0 ? pal.link : pal.textLight}> {formatCount(store.me.invitesAvailable)} invite{' '} {pluralize(store.me.invitesAvailable, 'code')} available ) }) const styles = StyleSheet.create({ rightNav: { position: 'absolute', top: 20, // @ts-ignore web only left: 'calc(50vw + 320px)', width: 304, // @ts-ignore web only maxHeight: '90vh', }, message: { paddingVertical: 18, paddingHorizontal: 10, }, messageLine: { marginBottom: 10, }, inviteCodes: { borderTopWidth: 1, paddingHorizontal: 16, paddingVertical: 12, flexDirection: 'row', alignItems: 'center', }, inviteCodesIcon: { marginRight: 6, }, })