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

24 lines
851 B
JavaScript
Executable file

// Highlights messages that @mention you. "@john" matches anyone whose name starts with "john".
(function () {
var box = document.getElementById('chat');
var nameInput = box && box.querySelector('[name="chat_name"]');
if (!nameInput) return;
function mark() {
var m = nameInput.value.match(/[\p{L}\p{N}_]+/u);
var key = m ? m[0].toLowerCase() : '';
box.querySelectorAll('.chat-msg').forEach(function (msg) {
var hit = false;
if (key) {
msg.querySelectorAll('.chat-mention').forEach(function (el) {
if (el.dataset.mention.toLowerCase() === key) hit = true;
});
}
['bg-warning-subtle', 'rounded', 'px-1'].forEach(function (c) { msg.classList.toggle(c, hit); });
});
}
box.addEventListener('chat:updated', mark);
nameInput.addEventListener('input', mark);
mark();
})();