The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/startup/messageObserve.ts

24 lines
741 B

import { Meteor } from 'meteor/meteor';
import { ChatMessage } from '../../app/models/client';
import { LegacyRoomManager } from '../../app/ui-utils/client';
Meteor.startup(() => {
ChatMessage.find().observe({
removed(record) {
if (!LegacyRoomManager.getOpenedRoomByRid(record.rid)) {
return;
}
const recordBefore = ChatMessage.findOne({ ts: { $lt: record.ts } }, { sort: { ts: -1 } });
if (recordBefore) {
ChatMessage.update({ _id: recordBefore._id }, { $set: { tick: new Date() } });
}
const recordAfter = ChatMessage.findOne({ ts: { $gt: record.ts } }, { sort: { ts: 1 } });
if (recordAfter) {
return ChatMessage.update({ _id: recordAfter._id }, { $set: { tick: new Date() } });
}
},
});
});