diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-11-23 14:22:40 -0600 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-11-23 14:22:40 -0600 |
commit | 2b37b6549b6cb17db582a81a2bdca8316b1e4861 (patch) | |
tree | 4bbefea0af632f6f9bb537a7c78d5b045f8d916f /src/view/com/post-thread/PostThreadItem.tsx | |
parent | a9934998909b7d828f66e2b1b0b1e0aeb20adf6a (diff) | |
download | voidsky-2b37b6549b6cb17db582a81a2bdca8316b1e4861.tar.zst |
Add replying-to context to threads
Diffstat (limited to 'src/view/com/post-thread/PostThreadItem.tsx')
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 57 |
1 files changed, 43 insertions, 14 deletions
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index bb90afe19..98d6bd371 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -17,6 +17,7 @@ import {PostMeta} from '../util/PostMeta' import {PostCtrls} from '../util/PostCtrls' const PARENT_REPLY_LINE_LENGTH = 8 +const REPLYING_TO_LINE_LENGTH = 6 export const PostThreadItem = observer(function PostThreadItem({ item, @@ -204,8 +205,25 @@ export const PostThreadItem = observer(function PostThreadItem({ } else { return ( <Link style={styles.outer} href={itemHref} title={itemTitle}> - {!!item.replyingToAuthor && <View style={styles.parentReplyLine} />} + {!item.replyingTo && item.record.reply && ( + <View style={styles.parentReplyLine} /> + )} {item.replies?.length !== 0 && <View style={styles.childReplyLine} />} + {item.replyingTo ? ( + <View style={styles.replyingTo}> + <View style={styles.replyingToLine} /> + <View style={styles.replyingToAvatar}> + <UserAvatar + handle={item.replyingTo.author.handle} + displayName={item.replyingTo.author.displayName} + size={30} + /> + </View> + <Text style={styles.replyingToText} numberOfLines={2}> + {item.replyingTo.text} + </Text> + </View> + ) : undefined} <View style={styles.layout}> <View style={styles.layoutAvi}> <Link href={authorHref} title={authorTitle}> @@ -227,19 +245,6 @@ export const PostThreadItem = observer(function PostThreadItem({ isAuthor={item.author.did === store.me.did} onDeletePost={onDeletePost} /> - {item.replyingToAuthor && - item.replyingToAuthor !== item.author.handle && ( - <View style={[s.flexRow, s.mb5, {alignItems: 'center'}]}> - <Text style={[s.gray5, s.f15, s.mr2]}>Replying to</Text> - <Link - href={`/profile/${item.replyingToAuthor}`} - title={`@${item.replyingToAuthor}`}> - <Text style={[s.f14, s.blue3]}> - @{item.replyingToAuthor} - </Text> - </Link> - </View> - )} <View style={styles.postTextContainer}> <RichText text={record.text} @@ -287,6 +292,30 @@ const styles = StyleSheet.create({ borderLeftWidth: 2, borderLeftColor: colors.gray2, }, + replyingToLine: { + position: 'absolute', + left: 34, + bottom: -1 * REPLYING_TO_LINE_LENGTH, + height: REPLYING_TO_LINE_LENGTH, + borderLeftWidth: 2, + borderLeftColor: colors.gray2, + }, + replyingTo: { + flexDirection: 'row', + backgroundColor: colors.white, + paddingLeft: 8, + paddingTop: 12, + paddingBottom: 0, + paddingRight: 24, + }, + replyingToAvatar: { + marginLeft: 12, + marginRight: 20, + }, + replyingToText: { + flex: 1, + color: colors.gray5, + }, layout: { flexDirection: 'row', }, |