From f13c4ace70feedb1f81fa3e32cab0dc213d7e2ce Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 6 Feb 2023 14:20:21 -0500 Subject: [PATCH] feat: send event:chats.mark socket event on mark read or unread --- public/src/client/chats.js | 14 ++++++++++++++ src/api/chats.js | 1 + 2 files changed, 15 insertions(+) diff --git a/public/src/client/chats.js b/public/src/client/chats.js index c371887151..93e522427a 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -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 () { diff --git a/src/api/chats.js b/src/api/chats.js index b465513abb..401fccb472 100644 --- a/src/api/chats.js +++ b/src/api/chats.js @@ -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 }); };