diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-04-02 01:45:29 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-01 15:45:29 -0700 |
commit | 5cb49314d009e02179eec3bfc759376d134e2673 (patch) | |
tree | e61fe05d9d512577c448fc31989ef5ed6cfb6bd3 /src/screens/Messages/components/ChatListItem.tsx | |
parent | 318b29d3fd7d22895ed6ba9a8daff6f296d7dd58 (diff) | |
download | voidsky-5cb49314d009e02179eec3bfc759376d134e2673.tar.zst |
[Reactions] Get reactions in chat list working again with new lexicon (#8093)
* get chat list reactions working again with new lexicon * fix weird android bug where background wasn't clipped
Diffstat (limited to 'src/screens/Messages/components/ChatListItem.tsx')
-rw-r--r-- | src/screens/Messages/components/ChatListItem.tsx | 76 |
1 files changed, 44 insertions, 32 deletions
diff --git a/src/screens/Messages/components/ChatListItem.tsx b/src/screens/Messages/components/ChatListItem.tsx index d8e4b975c..8a760e2c9 100644 --- a/src/screens/Messages/components/ChatListItem.tsx +++ b/src/screens/Messages/components/ChatListItem.tsx @@ -185,50 +185,61 @@ function ChatListItemReady({ lastMessageSentAt = convo.lastMessage.sentAt } if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { + lastMessageSentAt = convo.lastMessage.sentAt + lastMessage = isDeletedAccount ? _(msg`Conversation deleted`) : _(msg`Message deleted`) } - if (ChatBskyConvoDefs.isMessageAndReactionView(convo.lastMessage)) { - const isFromMe = - convo.lastMessage.reaction.sender.did === currentAccount?.did - const lastMessageText = convo.lastMessage.message.text - const fallbackMessage = _( - msg({ - message: 'a message', - comment: `If last message does not contain text, fall back to "{user} reacted to {a message}"`, - }), - ) - - if (isFromMe) { - lastMessage = _( - msg`You reacted ${convo.lastMessage.reaction.value} to ${ - lastMessageText - ? `"${convo.lastMessage.message.text}"` - : fallbackMessage - }`, + + if (ChatBskyConvoDefs.isMessageAndReactionView(convo.lastReaction)) { + if ( + !lastMessageSentAt || + new Date(lastMessageSentAt) < + new Date(convo.lastReaction.reaction.createdAt) + ) { + const isFromMe = + convo.lastReaction.reaction.sender.did === currentAccount?.did + const lastMessageText = convo.lastReaction.message.text + const fallbackMessage = _( + msg({ + message: 'a message', + comment: `If last message does not contain text, fall back to "{user} reacted to {a message}"`, + }), ) - } else { - const senderDid = convo.lastMessage.reaction.sender.did - const sender = convo.members.find(member => member.did === senderDid) - if (sender) { + + if (isFromMe) { lastMessage = _( - msg`${sanitizeDisplayName( - sender.displayName || sender.handle, - )} reacted ${convo.lastMessage.reaction.value} to ${ + msg`You reacted ${convo.lastReaction.reaction.value} to ${ lastMessageText - ? `"${convo.lastMessage.message.text}"` + ? `"${convo.lastReaction.message.text}"` : fallbackMessage }`, ) } else { - lastMessage = _( - msg`Someone reacted ${convo.lastMessage.reaction.value} to ${ - lastMessageText - ? `"${convo.lastMessage.message.text}"` - : fallbackMessage - }`, + const senderDid = convo.lastReaction.reaction.sender.did + const sender = convo.members.find( + member => member.did === senderDid, ) + if (sender) { + lastMessage = _( + msg`${sanitizeDisplayName( + sender.displayName || sender.handle, + )} reacted ${convo.lastReaction.reaction.value} to ${ + lastMessageText + ? `"${convo.lastReaction.message.text}"` + : fallbackMessage + }`, + ) + } else { + lastMessage = _( + msg`Someone reacted ${convo.lastReaction.reaction.value} to ${ + lastMessageText + ? `"${convo.lastReaction.message.text}"` + : fallbackMessage + }`, + ) + } } } } @@ -241,6 +252,7 @@ function ChatListItemReady({ }, [ _, convo.lastMessage, + convo.lastReaction, currentAccount?.did, isDeletedAccount, convo.members, |