diff options
-rw-r--r-- | src/view/com/post/Post.tsx | 30 | ||||
-rw-r--r-- | src/view/com/posts/FeedItem.tsx | 67 |
2 files changed, 62 insertions, 35 deletions
diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index 51a1381ec..a05339d4d 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -15,6 +15,7 @@ import {useQueryClient} from '@tanstack/react-query' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' import {MAX_POST_LINES} from 'lib/constants' import {usePalette} from 'lib/hooks/usePalette' @@ -145,6 +146,9 @@ function PostInner({ precacheProfile(queryClient, post.author) }, [queryClient, post.author]) + const {currentAccount} = useSession() + const isMe = replyAuthorDid === currentAccount?.did + return ( <Link href={itemHref} @@ -187,17 +191,21 @@ function PostInner({ style={[pal.textLight, s.mr2]} lineHeight={1.2} numberOfLines={1}> - <Trans context="description"> - Reply to{' '} - <ProfileHoverCard inline did={replyAuthorDid}> - <UserInfoText - type="sm" - did={replyAuthorDid} - attr="displayName" - style={[pal.textLight]} - /> - </ProfileHoverCard> - </Trans> + {isMe ? ( + <Trans context="description">Reply to you</Trans> + ) : ( + <Trans context="description"> + Reply to{' '} + <ProfileHoverCard inline did={replyAuthorDid}> + <UserInfoText + type="sm" + did={replyAuthorDid} + attr="displayName" + style={[pal.textLight]} + /> + </ProfileHoverCard> + </Trans> + )} </Text> </View> )} diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index cc767a4a3..a59eeea52 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -43,6 +43,7 @@ import {Text} from '../util/text/Text' import {PreviewableUserAvatar} from '../util/UserAvatar' import {AviFollowButton} from './AviFollowButton' import hairlineWidth = StyleSheet.hairlineWidth +import {useSession} from '#/state/session' import {Repost_Stroke2_Corner2_Rounded as Repost} from '#/components/icons/Repost' interface FeedItemProps { @@ -200,6 +201,11 @@ let FeedItemInner = ({ }, ] + const {currentAccount} = useSession() + const isOwner = + AppBskyFeedDefs.isReasonRepost(reason) && + reason.by.did === currentAccount?.did + return ( <Link testID={`feedItem-by-${post.author.handle}`} @@ -250,11 +256,15 @@ let FeedItemInner = ({ <Link style={styles.includeReason} href={makeProfileLink(reason.by)} - title={_( - msg`Reposted by ${sanitizeDisplayName( - reason.by.displayName || reason.by.handle, - )}`, - )} + title={ + isOwner + ? _(msg`Reposted by you`) + : _( + msg`Reposted by ${sanitizeDisplayName( + reason.by.displayName || reason.by.handle, + )}`, + ) + } onBeforePress={onOpenReposter}> <Repost style={{color: pal.colors.textLight, marginRight: 3}} @@ -266,24 +276,28 @@ let FeedItemInner = ({ style={pal.textLight} lineHeight={1.2} numberOfLines={1}> - <Trans> - Reposted by{' '} - <ProfileHoverCard inline did={reason.by.did}> - <TextLinkOnWebOnly - type="sm-bold" - style={pal.textLight} - lineHeight={1.2} - numberOfLines={1} - text={sanitizeDisplayName( - reason.by.displayName || - sanitizeHandle(reason.by.handle), - moderation.ui('displayName'), - )} - href={makeProfileLink(reason.by)} - onBeforePress={onOpenReposter} - /> - </ProfileHoverCard> - </Trans> + {isOwner ? ( + <Trans>Reposted by you</Trans> + ) : ( + <Trans> + Reposted by{' '} + <ProfileHoverCard inline did={reason.by.did}> + <TextLinkOnWebOnly + type="sm-bold" + style={pal.textLight} + lineHeight={1.2} + numberOfLines={1} + text={sanitizeDisplayName( + reason.by.displayName || + sanitizeHandle(reason.by.handle), + moderation.ui('displayName'), + )} + href={makeProfileLink(reason.by)} + onBeforePress={onOpenReposter} + /> + </ProfileHoverCard> + </Trans> + )} </Text> </Link> ) : null} @@ -421,6 +435,9 @@ function ReplyToLabel({ blocked?: boolean }) { const pal = usePalette('default') + const {currentAccount} = useSession() + const isMe = profile.did === currentAccount?.did + return ( <View style={[s.flexRow, s.mb2, s.alignCenter]}> <FontAwesomeIcon @@ -433,7 +450,9 @@ function ReplyToLabel({ style={[pal.textLight, s.mr2]} lineHeight={1.2} numberOfLines={1}> - {blocked ? ( + {isMe ? ( + <Trans context="description">Reply to you</Trans> + ) : blocked ? ( <Trans context="description">Reply to a blocked post</Trans> ) : ( <Trans context="description"> |