fix: Last message appears in extended view after deletion (#29624)

Co-authored-by: Matheus Barbosa Silva <36537004+matheusbsilva137@users.noreply.github.com>
pull/29734/head^2
Heitor Tanoue 3 years ago committed by GitHub
parent b62dde15f3
commit 01e39b5c4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      .changeset/modern-geese-laugh.md
  2. 20
      apps/meteor/app/lib/server/functions/deleteMessage.ts

@ -0,0 +1,5 @@
---
"@rocket.chat/meteor": patch
---
fix: Last message appears in extended view after deletion

@ -68,26 +68,28 @@ export async function deleteMessage(message: IMessage, user: IUser): Promise<voi
}
}
if (showDeletedStatus) {
// TODO is there a better way to tell TS "IUser[username]" is not undefined?
await Messages.setAsDeletedByIdAndUser(message._id, user as Required<Pick<IUser, '_id' | 'username' | 'name'>>);
} else {
void api.broadcast('notify.deleteMessage', message.rid, { _id: message._id });
}
const room = await Rooms.findOneById(message.rid, { projection: { lastMessage: 1, prid: 1, mid: 1, federated: 1 } });
await callbacks.run('afterDeleteMessage', deletedMsg, room);
// update last message
if (settings.get('Store_Last_Message')) {
if (!room?.lastMessage || room.lastMessage._id === message._id) {
await Rooms.resetLastMessageById(message.rid, deletedMsg);
const lastMessageNotDeleted = await Messages.getLastVisibleMessageSentWithNoTypeByRoomId(message.rid);
await Rooms.resetLastMessageById(message.rid, lastMessageNotDeleted);
}
}
await callbacks.run('afterDeleteMessage', deletedMsg, room);
// decrease message count
await Rooms.decreaseMessageCountById(message.rid, 1);
if (showDeletedStatus) {
// TODO is there a better way to tell TS "IUser[username]" is not undefined?
await Messages.setAsDeletedByIdAndUser(message._id, user as Required<Pick<IUser, '_id' | 'username' | 'name'>>);
} else {
void api.broadcast('notify.deleteMessage', message.rid, { _id: message._id });
}
if (bridges) {
void bridges.getListenerBridge().messageEvent('IPostMessageDeleted', deletedMsg, user);
}

Loading…
Cancel
Save