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

35 lines
1.3 KiB
JavaScript
Executable file

// Click "Reply" under a message and your next message quotes it. Works with replies.php.
(function () {
var box = document.getElementById('chat');
var input = box && box.querySelector('[name="chat_text"]');
if (!input) return;
var form = input.form;
var hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = 'chat_reply';
var bar = document.createElement('div');
bar.className = 'small text-body-secondary mb-2';
bar.hidden = true;
form.prepend(hidden, bar);
function clear() { hidden.value = ''; bar.hidden = true; }
box.addEventListener('click', function (e) {
var b = e.target.closest('.chat-reply, .chat-reply-cancel');
if (!b) return;
if (b.classList.contains('chat-reply-cancel')) return clear();
hidden.value = b.dataset.id;
bar.textContent = '↩ Replying to ' + b.dataset.name + ': ' + b.dataset.text + ' ';
var x = document.createElement('button');
x.type = 'button';
x.className = 'btn btn-sm btn-link p-0 chat-reply-cancel';
x.textContent = '✕ Cancel';
bar.appendChild(x);
bar.hidden = false;
input.focus();
});
// Clear after the page script has read the form (it runs after this handler).
form.addEventListener('submit', function () { setTimeout(clear, 0); });
})();