From 97f52b6a03ab36dcbf21256cc0137b550b10f174 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 31 Aug 2022 14:36:50 -0500 Subject: 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 --- src/view/com/post-thread/PostThreadItem.tsx | 33 +++++++++++------------------ 1 file changed, 12 insertions(+), 21 deletions(-) (limited to 'src/view/com/post-thread/PostThreadItem.tsx') diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 981aab092..5430c8ef5 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -3,11 +3,11 @@ import {observer} from 'mobx-react-lite' import {Image, StyleSheet, Text, TouchableOpacity, View} from 'react-native' import {bsky, AdxUri} from '@adxp/mock-api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {OnNavigateContent} from '../../routes/types' import {PostThreadViewPostModel} from '../../../state/models/post-thread-view' import {s} from '../../lib/styles' import {ago, pluralize} from '../../lib/strings' import {AVIS} from '../../lib/assets' +import {useStores} from '../../../state' function iter(n: number, fn: (_i: number) => T): Array { const arr: T[] = [] @@ -19,46 +19,36 @@ function iter(n: number, fn: (_i: number) => T): Array { export const PostThreadItem = observer(function PostThreadItem({ item, - onNavigateContent, onPressShare, }: { item: PostThreadViewPostModel - onNavigateContent: OnNavigateContent onPressShare: (_uri: string) => void }) { + const store = useStores() const record = item.record as unknown as bsky.Post.Record const hasEngagement = item.likeCount || item.repostCount const onPressOuter = () => { const urip = new AdxUri(item.uri) - onNavigateContent('PostThread', { - name: item.author.name, - recordKey: urip.recordKey, - }) + store.nav.navigate(`/profile/${item.author.name}/post/${urip.recordKey}`) } const onPressAuthor = () => { - onNavigateContent('Profile', { - name: item.author.name, - }) + store.nav.navigate(`/profile/${item.author.name}`) } const onPressLikes = () => { const urip = new AdxUri(item.uri) - onNavigateContent('PostLikedBy', { - name: item.author.name, - recordKey: urip.recordKey, - }) + store.nav.navigate( + `/profile/${item.author.name}/post/${urip.recordKey}/liked-by`, + ) } const onPressReposts = () => { const urip = new AdxUri(item.uri) - onNavigateContent('PostRepostedBy', { - name: item.author.name, - recordKey: urip.recordKey, - }) + store.nav.navigate( + `/profile/${item.author.name}/post/${urip.recordKey}/reposted-by`, + ) } const onPressReply = () => { - onNavigateContent('Composer', { - replyTo: item.uri, - }) + store.nav.navigate(`/composer?replyTo=${item.uri}`) } const onPressToggleRepost = () => { item @@ -227,6 +217,7 @@ const styles = StyleSheet.create({ }, postText: { paddingBottom: 5, + fontFamily: 'Helvetica Neue', }, expandedInfo: { flexDirection: 'row', -- cgit 1.4.1