diff options
Diffstat (limited to 'src/view')
-rw-r--r-- | src/view/com/post-thread/PostThread.tsx | 3 | ||||
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 15 | ||||
-rw-r--r-- | src/view/routes/index.tsx | 18 |
3 files changed, 24 insertions, 12 deletions
diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 7bbad36be..9622ceb49 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -78,6 +78,9 @@ export const PostThread = observer(function PostThread({ function* flattenThread( post: PostThreadViewPostModel, ): Generator<PostThreadViewPostModel, void> { + if (post.parent) { + yield* flattenThread(post.parent) + } yield post if (post.replies?.length) { for (const reply of post.replies) { diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 985d11dfa..2b72b7e4b 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -8,7 +8,7 @@ import { TouchableOpacity, View, } from 'react-native' -import {bsky} from '@adxp/mock-api' +import {bsky, AdxUri} from '@adxp/mock-api' import moment from 'moment' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {OnNavigateContent} from '../../routes/types' @@ -31,7 +31,8 @@ function iter<T>(n: number, fn: (i: number) => T): Array<T> { } export const PostThreadItem = observer(function PostThreadItem({ - item, // onNavigateContent, + item, + onNavigateContent, }: { item: PostThreadViewPostModel onNavigateContent: OnNavigateContent @@ -39,12 +40,16 @@ export const PostThreadItem = observer(function PostThreadItem({ const record = item.record as unknown as bsky.Post.Record const hasEngagement = item.likeCount || item.repostCount const onPressOuter = () => { - // TODO onNavigateContent + const urip = new AdxUri(item.uri) + onNavigateContent('PostThread', { + name: item.author.name, + recordKey: urip.recordKey, + }) } return ( <TouchableOpacity style={styles.outer} onPress={onPressOuter}> <View style={styles.layout}> - {iter(item._depth, () => ( + {iter(Math.abs(item._depth), () => ( <View style={styles.replyBar} /> ))} <View style={styles.layoutAvi}> @@ -143,7 +148,7 @@ const styles = StyleSheet.create({ }, replyBar: { width: 5, - backgroundColor: '#d4f0ff', + backgroundColor: 'gray', marginRight: 2, }, layoutAvi: { diff --git a/src/view/routes/index.tsx b/src/view/routes/index.tsx index 112452196..24d47a93c 100644 --- a/src/view/routes/index.tsx +++ b/src/view/routes/index.tsx @@ -54,20 +54,24 @@ const tabBarScreenOptions = ({ route: RouteProp<ParamListBase, string> }) => ({ headerShown: false, - tabBarIcon: (_state: {focused: boolean; color: string; size: number}) => { + tabBarIcon: (state: {focused: boolean; color: string; size: number}) => { switch (route.name) { case 'Home': - return <FontAwesomeIcon icon="house" /> + return <FontAwesomeIcon icon="house" style={{color: state.color}} /> case 'Search': - return <FontAwesomeIcon icon="magnifying-glass" /> + return ( + <FontAwesomeIcon + icon="magnifying-glass" + style={{color: state.color}} + /> + ) case 'Notifications': - return <FontAwesomeIcon icon="bell" /> + return <FontAwesomeIcon icon="bell" style={{color: state.color}} /> case 'Menu': - return <FontAwesomeIcon icon="bars" /> + return <FontAwesomeIcon icon="bars" style={{color: state.color}} /> default: - return <FontAwesomeIcon icon="bars" /> + return <FontAwesomeIcon icon="bars" style={{color: state.color}} /> } - // return <Text>{route.name?.[0] || ''}</Text> }, }) |