From d60d774e73eaa31506c194b079d6972db6aaa4b7 Mon Sep 17 00:00:00 2001 From: l5y <220195275+l5yth@users.noreply.github.com> Date: Sat, 22 Nov 2025 18:51:19 +0100 Subject: [PATCH] Render reaction multiplier counts (#494) --- web/public/assets/js/app/__tests__/message-replies.test.js | 2 +- web/public/assets/js/app/message-replies.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/web/public/assets/js/app/__tests__/message-replies.test.js b/web/public/assets/js/app/__tests__/message-replies.test.js index 95c07cc..492c4f8 100644 --- a/web/public/assets/js/app/__tests__/message-replies.test.js +++ b/web/public/assets/js/app/__tests__/message-replies.test.js @@ -100,5 +100,5 @@ test('buildMessageBody suppresses reaction slot markers and formats counts', () renderEmojiHtml: value => `EMOJI(${value})` }); - assert.equal(countedBody, 'EMOJI(✨)'); + assert.equal(countedBody, 'EMOJI(✨) ESC(×2)'); }); diff --git a/web/public/assets/js/app/message-replies.js b/web/public/assets/js/app/message-replies.js index a12a16f..01bb210 100644 --- a/web/public/assets/js/app/message-replies.js +++ b/web/public/assets/js/app/message-replies.js @@ -360,6 +360,7 @@ export function buildMessageBody({ message, escapeHtml, renderEmojiHtml }) { const segments = []; const reaction = isReactionMessage(message); const textSegment = resolveMessageTextSegment(message, reaction); + const reactionCount = reaction && textSegment && /^×\d+$/.test(textSegment) ? textSegment : null; if (textSegment && !reaction) { segments.push(escapeHtml(textSegment)); } @@ -367,6 +368,9 @@ export function buildMessageBody({ message, escapeHtml, renderEmojiHtml }) { if (emoji) { segments.push(renderEmojiHtml(emoji)); } + if (reactionCount) { + segments.push(escapeHtml(reactionCount)); + } if (segments.length === 0) { return '';