From 854e0ab7ae229207eaaeb709e4b47a35e75b4968 Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 12 Nov 2024 04:05:01 -0500 Subject: [PATCH] Decrypt potential reaction events before checking their type (#2761) By rights, this fix I had made to decrypt reaction events shouldn't have appeared successful, because I was requiring the event to have a certain type before asking matrix-js-sdk to decrypt it, and you can't know an event's type before it's decrypted. Probably what was happening is that another code path was requesting the events to be decrypted so that this mistake didn't matter. --- src/useReactions.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/useReactions.tsx b/src/useReactions.tsx index c8d3c3b5..8824f103 100644 --- a/src/useReactions.tsx +++ b/src/useReactions.tsx @@ -195,11 +195,12 @@ export const ReactionsProvider = ({ // Skip any event without a sender or event ID. if (!sender || !reactionEventId) return; + room.client + .decryptEventIfNeeded(event) + .catch((e) => logger.warn(`Failed to decrypt ${event.getId()}`, e)); + if (event.isBeingDecrypted() || event.isDecryptionFailure()) return; + if (event.getType() === ElementCallReactionEventType) { - room.client - .decryptEventIfNeeded(event) - .catch((e) => logger.warn(`Failed to decrypt ${event.getId()}`, e)); - if (event.isBeingDecrypted() || event.isDecryptionFailure()) return; const content: ECallReactionEventContent = event.getContent(); const membershipEventId = content?.["m.relates_to"]?.event_id;