feat: send event:chats.mark socket event on mark read or unread

This commit is contained in:
Julian Lam
2023-02-06 14:20:21 -05:00
parent 4a15b4ee51
commit f13c4ace70
2 changed files with 15 additions and 0 deletions

View File

@@ -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 () {

View File

@@ -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 });
};