diff --git a/.changeset/gentle-months-kick.md b/.changeset/gentle-months-kick.md new file mode 100644 index 00000000000..87c82962ee3 --- /dev/null +++ b/.changeset/gentle-months-kick.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': patch +--- + +Fixes an issue where deleted messages remain visible until a manual page refresh when "Message removed" is hidden in hidden system messages settings. diff --git a/apps/meteor/server/lib/systemMessage/hideSystemMessage.ts b/apps/meteor/server/lib/systemMessage/hideSystemMessage.ts index cc6b7c13b85..8bfdfe546ef 100644 --- a/apps/meteor/server/lib/systemMessage/hideSystemMessage.ts +++ b/apps/meteor/server/lib/systemMessage/hideSystemMessage.ts @@ -4,8 +4,10 @@ export const isMutedUnmuted = (messageType: string): boolean => { return messageType === 'user-muted' || messageType === 'user-unmuted'; }; +export const isMessageRemoved = (messageType: string): boolean => messageType === 'rm'; + export const shouldHideSystemMessage = (messageType: MessageTypesValues, hideSystemMessage?: MessageTypesValues[]): boolean => { - if (!hideSystemMessage?.length) { + if (!hideSystemMessage?.length || isMessageRemoved(messageType)) { return false; } diff --git a/apps/meteor/tests/unit/server/lib/systemMessage/hideSystemMessage.spec.ts b/apps/meteor/tests/unit/server/lib/systemMessage/hideSystemMessage.spec.ts index 61d2696068a..ed95fe216dd 100644 --- a/apps/meteor/tests/unit/server/lib/systemMessage/hideSystemMessage.spec.ts +++ b/apps/meteor/tests/unit/server/lib/systemMessage/hideSystemMessage.spec.ts @@ -40,6 +40,11 @@ describe('hideSystemMessage', () => { expect(result).to.be.false; }); + it('should return false if message type is of deleted message', async () => { + const result = shouldHideSystemMessage('rm', undefined); + expect(result).to.be.false; + }); + it('should return false if hidden system messages are undefined', async () => { const result = shouldHideSystemMessage('user-muted', undefined); expect(result).to.be.false;