From 1ebff6b3aefe51cd43fc0d53c3c8d558354a9f4f Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Wed, 6 Apr 2022 10:44:44 +1000 Subject: [PATCH] make sure reply is available to read messages and do not handle read messages for non private convo1 --- .../message/message-content/MessageContextMenu.tsx | 2 +- ts/util/readReceipts.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ts/components/conversation/message/message-content/MessageContextMenu.tsx b/ts/components/conversation/message/message-content/MessageContextMenu.tsx index c23239f9b..68cdb7265 100644 --- a/ts/components/conversation/message/message-content/MessageContextMenu.tsx +++ b/ts/components/conversation/message/message-content/MessageContextMenu.tsx @@ -72,7 +72,7 @@ export const MessageContextMenu = (props: Props) => { const { messageId, contextMenuId } = props; const isOutgoing = direction === 'outgoing'; const showRetry = status === 'error' && isOutgoing; - const isSent = status === 'sent'; + const isSent = status === 'sent' || status === 'read'; // a read message should be replyable const multipleAttachments = attachments && attachments.length > 1; const onContextMenuShown = useCallback(() => { diff --git a/ts/util/readReceipts.ts b/ts/util/readReceipts.ts index c0510cb17..e0fbdc13e 100644 --- a/ts/util/readReceipts.ts +++ b/ts/util/readReceipts.ts @@ -27,6 +27,20 @@ async function onReadReceipt(receipt: { source: string; timestamp: number; readA window.log.info('No message for read receipt', receipt.source, receipt.timestamp); return; } + const convoId = message.get('conversationId'); // this might be a group and we don't want to handle them + if ( + !convoId || + !getConversationController().get(convoId) || + !getConversationController() + .get(convoId) + .isPrivate() + ) { + window.log.info( + 'Convo is undefined or not a private chat for read receipt in convo', + convoId + ); + return; + } const readBy = message.get('read_by') || []; const expirationStartTimestamp = message.get('expirationStartTimestamp');