fix: dont show chat notif if you are already in the room

mark all notifs from chat read when you you mark the chat room read
isekai-main
Barış Soner Uşaklı 1 year ago
parent 2930892aa7
commit 3d6668e7f0

@ -90,6 +90,9 @@ define('notifications', [
if (ajaxify.currentPage === 'notifications') {
ajaxify.refresh();
}
if (ajaxify.data.template.chats && parseInt(ajaxify.data.roomId, 10) === parseInt(notifData.roomId, 10)) {
return;
}
socket.emit('notifications.getCount', function (err, count) {
if (err) {

@ -6,6 +6,7 @@ const db = require('../database');
const user = require('../user');
const meta = require('../meta');
const messaging = require('../messaging');
const notifications = require('../notifications');
const plugins = require('../plugins');
const privileges = require('../privileges');
@ -156,6 +157,9 @@ chatsAPI.mark = async (caller, data) => {
} else {
await messaging.markRead(caller.uid, roomId);
socketHelpers.emitToUids('event:chats.markedAsRead', { roomId: roomId }, [caller.uid]);
const nids = await user.notifications.getUnreadByField(caller.uid, 'roomId', [roomId]);
await notifications.markReadMultiple(nids, caller.uid);
user.notifications.pushCount(caller.uid);
}
socketHelpers.emitToUids('event:chats.mark', { roomId, state }, [caller.uid]);

@ -128,6 +128,7 @@ module.exports = function (Messaging) {
bodyLong: messageObj.content,
nid: `chat_${roomId}_${fromUid}`,
from: fromUid,
roomId: roomId,
path: `/chats/${messageObj.roomId}`,
};
if (roomData.public) {

Loading…
Cancel
Save