mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-21 23:12:58 +01:00
feat: send event:chats.mark socket event on mark read or unread
This commit is contained in:
@@ -525,6 +525,20 @@ define('forum/chats', [
|
||||
|
||||
titleEl.text(data.newName);
|
||||
});
|
||||
|
||||
socket.on('event:chats.mark', ({ roomId, state }) => {
|
||||
const roomEls = document.querySelectorAll(`[component="chat/recent"] [data-roomid="${roomId}"], [component="chat/list"] [data-roomid="${roomId}"]`);
|
||||
|
||||
roomEls.forEach((roomEl) => {
|
||||
roomEl.classList.add('unread');
|
||||
|
||||
const markEl = roomEl.querySelector('.mark-read');
|
||||
if (markEl) {
|
||||
markEl.querySelector('.read').classList[state ? 'add' : 'remove']('hidden');
|
||||
markEl.querySelector('.unread').classList[state ? 'remove' : 'add']('hidden');
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Chats.setActive = function () {
|
||||
|
||||
@@ -81,6 +81,7 @@ chatsAPI.mark = async (caller, data) => {
|
||||
await messaging.markRead(caller.uid, roomId);
|
||||
}
|
||||
|
||||
socketHelpers.emitToUids('event:chats.mark', { roomId, state }, [caller.uid]);
|
||||
return messaging.loadRoom(caller.uid, { roomId });
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user