From 5d30f5449c61d474096fe414ec112bc96236be44 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Fri, 8 Dec 2023 12:11:05 -0600 Subject: [PATCH] Allow reactions/replies after setting removalStage Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> --- ts/components/CompositionArea.tsx | 2 +- ts/reactions/enqueueReactionForSend.ts | 15 +++++++++++++++ ts/state/selectors/conversations.ts | 1 + ts/state/selectors/message.ts | 5 ++++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ts/components/CompositionArea.tsx b/ts/components/CompositionArea.tsx index b392183df5c..52c4c7ede16 100644 --- a/ts/components/CompositionArea.tsx +++ b/ts/components/CompositionArea.tsx @@ -781,7 +781,7 @@ export function CompositionArea({ // If no message request, but we haven't shared profile yet, we show profile-sharing UI if ( !left && - ((conversationType === 'direct' && removalStage !== 'justNotification') || + (conversationType === 'direct' || (conversationType === 'group' && groupVersion === 1)) && isMissingMandatoryProfileSharing ) { diff --git a/ts/reactions/enqueueReactionForSend.ts b/ts/reactions/enqueueReactionForSend.ts index 5cc551f2f33..9ee9ff0abfa 100644 --- a/ts/reactions/enqueueReactionForSend.ts +++ b/ts/reactions/enqueueReactionForSend.ts @@ -55,6 +55,21 @@ export async function enqueueReactionForSend({ ); const isMessageAStory = isStory(message.attributes); + + if ( + !isMessageAStory || + isDirectConversation(messageConversation.attributes) + ) { + log.info('Enabling profile sharing for reaction send'); + if (!messageConversation.get('profileSharing')) { + messageConversation.set('profileSharing', true); + await window.Signal.Data.updateConversation( + messageConversation.attributes + ); + } + await messageConversation.restoreContact(); + } + const targetConversation = isMessageAStory && isDirectConversation(messageConversation.attributes) ? window.ConversationController.get(targetAuthorAci) diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index 3f7af658a40..67dabbac707 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -1049,6 +1049,7 @@ export function isMissingRequiredProfileSharing( const doesConversationRequireIt = !conversation.isMe && !conversation.left && + !conversation.removalStage && (isGroupV1(conversation) || isDirectConversation(conversation)); return Boolean( diff --git a/ts/state/selectors/message.ts b/ts/state/selectors/message.ts index 6fc8858a2ea..b0279ac2c93 100644 --- a/ts/state/selectors/message.ts +++ b/ts/state/selectors/message.ts @@ -1766,7 +1766,10 @@ function canReplyOrReact( return false; } - if (!conversation.acceptedMessageRequest) { + if ( + !conversation.acceptedMessageRequest && + conversation.removalStage !== 'justNotification' + ) { return false; }