LAN_Portal/chat/features/unread.js
2026-10-16 16:22:59 -04:00

24 lines
879 B
JavaScript
Executable file

// Shows the number of new messages in the browser tab title while the tab is in the background.
(function () {
var box = document.getElementById('chat');
if (!box) return;
var title = document.title, unread = 0, seen = 0;
function ids() {
return Array.prototype.map.call(box.querySelectorAll('.chat-msg'), function (m) { return +m.dataset.id; });
}
seen = Math.max.apply(null, ids().concat(0));
box.addEventListener('chat:updated', function () {
var fresh = ids().filter(function (id) { return id > seen; });
if (!fresh.length) return;
seen = Math.max.apply(null, fresh.concat(seen));
if (document.hidden) {
unread += fresh.length;
document.title = '(' + unread + ') ' + title;
}
});
document.addEventListener('visibilitychange', function () {
if (!document.hidden) { unread = 0; document.title = title; }
});
})();