From 8a0afd86831bbbff1b07dfbdab1d919ebaa90854 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 6 Feb 2023 16:08:17 -0500 Subject: [PATCH] fix: allow unread state toggling in chats dropdown too --- public/src/modules/chat.js | 28 +++++++++++++--------------- src/socket.io/modules.js | 2 -- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index 29468c63f9..a0c0d94ebd 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -128,23 +128,21 @@ define('chat', [ e.stopPropagation(); const chatEl = e.target.closest('[data-roomid]'); - const unread = chatEl.classList.contains('unread'); - if (unread) { - const roomId = chatEl.getAttribute('data-roomid'); - api.del(`/chats/${roomId}/state`, {}).catch((err) => { - alerts.error(err); + const state = !chatEl.classList.contains('unread'); + const roomId = chatEl.getAttribute('data-roomid'); + api[state ? 'put' : 'del'](`/chats/${roomId}/state`, {}).catch((err) => { + alerts.error(err); - // Revert on failure - chatEl.classList.add('unread'); - this.querySelector('.unread').classList.remove('hidden'); - this.querySelector('.read').classList.add('hidden'); - }); + // Revert on failure + chatEl.classList[state ? 'remove' : 'add']('unread'); + chatEl.querySelector('.unread').classList[state ? 'add' : 'remove']('hidden'); + chatEl.querySelector('.read').classList[!state ? 'add' : 'remove']('hidden'); + }); - // Immediate feedback - chatEl.classList.remove('unread'); - this.querySelector('.unread').classList.add('hidden'); - this.querySelector('.read').classList.remove('hidden'); - } + // Immediate feedback + chatEl.classList[state ? 'add' : 'remove']('unread'); + chatEl.querySelector('.unread').classList[!state ? 'add' : 'remove']('hidden'); + chatEl.querySelector('.read').classList[state ? 'add' : 'remove']('hidden'); }); $('[component="chats/mark-all-read"]').off('click').on('click', function () { diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index a7f7626f90..b15f5a3f55 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -1,10 +1,8 @@ 'use strict'; const db = require('../database'); -const notifications = require('../notifications'); const Messaging = require('../messaging'); const utils = require('../utils'); -const server = require('./index'); const user = require('../user'); const privileges = require('../privileges');