import { MessageReads } from '@rocket.chat/core-services'; import { type IUser, type IRoom, type IMessage } from '@rocket.chat/core-typings'; import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../../server/settings'; import { ReadReceipt } from '../../lib/message-read-receipt/ReadReceipt'; callbacks.add( 'afterReadMessages', async (room: IRoom, params: { uid: IUser['_id']; lastSeen?: Date; tmid?: IMessage['_id'] }) => { if (!settings.get('Message_Read_Receipt_Enabled')) { return; } const { uid, lastSeen, tmid } = params; if (tmid) { await MessageReads.readThread(uid, tmid); } else if (lastSeen) { await ReadReceipt.markMessagesAsRead(room._id, uid, lastSeen); } }, callbacks.priority.MEDIUM, 'message-read-receipt-afterReadMessages', );