diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-08-31 14:36:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-31 14:36:50 -0500 |
commit | 97f52b6a03ab36dcbf21256cc0137b550b10f174 (patch) | |
tree | c632b69f038d33ea82c3378451f72177dc136cfe /src/view/com/notifications/FeedItem.tsx | |
parent | d1470bad6628022eda66c658d228cc7646abc746 (diff) | |
download | voidsky-97f52b6a03ab36dcbf21256cc0137b550b10f174.tar.zst |
New navigation model (#1)
* Flatten all routing into a single stack * Replace router with custom implementation * Add shell header and titles * Add tab selector * Add back/forward history menus on longpress * Fix: don't modify state during render * Add refresh() to navigation and reroute navigations to the current location to refresh instead of add to history * Cache screens during navigation to maintain scroll position and improve load-time for renders
Diffstat (limited to 'src/view/com/notifications/FeedItem.tsx')
-rw-r--r-- | src/view/com/notifications/FeedItem.tsx | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 1e0e47811..00bf6f48a 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -3,44 +3,34 @@ import {observer} from 'mobx-react-lite' import {Image, StyleSheet, Text, TouchableOpacity, View} from 'react-native' import {AdxUri} from '@adxp/mock-api' import {FontAwesomeIcon, Props} from '@fortawesome/react-native-fontawesome' -import {OnNavigateContent} from '../../routes/types' import {NotificationsViewItemModel} from '../../../state/models/notifications-view' import {s} from '../../lib/styles' import {ago} from '../../lib/strings' import {AVIS} from '../../lib/assets' import {PostText} from '../post/PostText' import {Post} from '../post/Post' +import {useStores} from '../../../state' export const FeedItem = observer(function FeedItem({ item, - onNavigateContent, }: { item: NotificationsViewItemModel - onNavigateContent: OnNavigateContent }) { + const store = useStores() + const onPressOuter = () => { if (item.isLike || item.isRepost) { const urip = new AdxUri(item.subjectUri) - onNavigateContent('PostThread', { - name: urip.host, - recordKey: urip.recordKey, - }) + store.nav.navigate(`/profile/${urip.host}/post/${urip.recordKey}`) } else if (item.isFollow) { - onNavigateContent('Profile', { - name: item.author.name, - }) + store.nav.navigate(`/profile/${item.author.name}`) } else if (item.isReply) { const urip = new AdxUri(item.uri) - onNavigateContent('PostThread', { - name: urip.host, - recordKey: urip.recordKey, - }) + store.nav.navigate(`/profile/${urip.host}/post/${urip.recordKey}`) } } const onPressAuthor = () => { - onNavigateContent('Profile', { - name: item.author.name, - }) + store.nav.navigate(`/profile/${item.author.name}`) } let action = '' @@ -92,7 +82,7 @@ export const FeedItem = observer(function FeedItem({ </View> {item.isReply ? ( <View style={s.pt5}> - <Post uri={item.uri} onNavigateContent={onNavigateContent} /> + <Post uri={item.uri} /> </View> ) : ( <></> |