diff options
Diffstat (limited to 'src/view/shell')
-rw-r--r-- | src/view/shell/Drawer.tsx | 14 | ||||
-rw-r--r-- | src/view/shell/desktop/Feeds.tsx | 23 | ||||
-rw-r--r-- | src/view/shell/desktop/LeftNav.tsx | 23 |
3 files changed, 48 insertions, 12 deletions
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 51a846c4a..95b79faa1 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -29,6 +29,7 @@ import { MagnifyingGlassIcon2Solid, UserIconSolid, HashtagIcon, + ListIcon, HandIcon, } from 'lib/icons' import {UserAvatar} from 'view/com/util/UserAvatar' @@ -106,6 +107,12 @@ export const DrawerContent = observer(function DrawerContentImpl() { [onPressTab], ) + const onPressLists = React.useCallback(() => { + track('Menu:ItemClicked', {url: 'Lists'}) + navigation.navigate('Lists') + store.shell.closeDrawer() + }, [navigation, track, store.shell]) + const onPressModeration = React.useCallback(() => { track('Menu:ItemClicked', {url: 'Moderation'}) navigation.navigate('Moderation') @@ -277,6 +284,13 @@ export const DrawerContent = observer(function DrawerContentImpl() { onPress={onPressMyFeeds} /> <MenuItem + icon={<ListIcon strokeWidth={2} style={pal.text} size={26} />} + label="Lists" + accessibilityLabel="Lists" + accessibilityHint="" + onPress={onPressLists} + /> + <MenuItem icon={<HandIcon strokeWidth={5} style={pal.text} size={24} />} label="Moderation" accessibilityLabel="Moderation" diff --git a/src/view/shell/desktop/Feeds.tsx b/src/view/shell/desktop/Feeds.tsx index 3f2063887..3237d2cdd 100644 --- a/src/view/shell/desktop/Feeds.tsx +++ b/src/view/shell/desktop/Feeds.tsx @@ -1,16 +1,17 @@ import React from 'react' import {View, StyleSheet} from 'react-native' import {useNavigationState} from '@react-navigation/native' -import {AtUri} from '@atproto/api' import {observer} from 'mobx-react-lite' import {useStores} from 'state/index' import {usePalette} from 'lib/hooks/usePalette' +import {useDesktopRightNavItems} from 'lib/hooks/useDesktopRightNavItems' import {TextLink} from 'view/com/util/Link' import {getCurrentRoute} from 'lib/routes/helpers' export const DesktopFeeds = observer(function DesktopFeeds() { const store = useStores() const pal = usePalette('default') + const items = useDesktopRightNavItems(store.preferences.pinnedFeeds) const route = useNavigationState(state => { if (!state) { @@ -22,20 +23,22 @@ export const DesktopFeeds = observer(function DesktopFeeds() { return ( <View style={[styles.container, pal.view, pal.border]}> <FeedItem href="/" title="Following" current={route.name === 'Home'} /> - {store.me.savedFeeds.pinned.map(feed => { + {items.map(item => { try { - const {hostname, rkey} = new AtUri(feed.uri) - const href = `/profile/${hostname}/feed/${rkey}` const params = route.params as Record<string, string> + const routeName = + item.collection === 'app.bsky.feed.generator' + ? 'ProfileFeed' + : 'ProfileList' return ( <FeedItem - key={feed.uri} - href={href} - title={feed.displayName} + key={item.uri} + href={item.href} + title={item.displayName} current={ - route.name === 'CustomFeed' && - params.name === hostname && - params.rkey === rkey + route.name === routeName && + params.name === item.hostname && + params.rkey === item.rkey } /> ) diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index 2679a6648..39271605c 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -31,8 +31,9 @@ import { CogIcon, CogIconSolid, ComposeIcon2, - HandIcon, + ListIcon, HashtagIcon, + HandIcon, } from 'lib/icons' import {getCurrentRoute, isTab, isStateAtTabRoot} from 'lib/routes/helpers' import {NavigationProp, CommonNavigatorParams} from 'lib/routes/types' @@ -320,12 +321,30 @@ export const DesktopLeftNav = observer(function DesktopLeftNav() { label="Notifications" /> <NavItem + href="/lists" + icon={ + <ListIcon + style={pal.text} + size={isDesktop ? 26 : 30} + strokeWidth={2} + /> + } + iconFilled={ + <ListIcon + style={pal.text} + size={isDesktop ? 26 : 30} + strokeWidth={3} + /> + } + label="Lists" + /> + <NavItem href="/moderation" icon={ <HandIcon - strokeWidth={5.5} style={pal.text} size={isDesktop ? 24 : 27} + strokeWidth={5.5} /> } iconFilled={ |