RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/startup/messageObserve.ts

Summary

Maintainability
A
0 mins
Test Coverage
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() } });
            }
        },
    });
});