diff --git a/chat.py b/chat.py index c0c9777..22a5c63 100644 --- a/chat.py +++ b/chat.py @@ -621,14 +621,24 @@ async function handleEncryptedDM(data) { d.className = 'msg'; const t = new Date(data.ts * 1000).toLocaleTimeString([], {hour:'2-digit',minute:'2-digit'}); const arrow = data.user === myName ? '→ ' + esc(data.to) : '← ' + esc(data.user); - d.innerHTML = '' + t + ' 🔒 DM ' + arrow + ': ' + renderMd(text); + const replyTo = data.user === myName ? data.to : data.user; + d.innerHTML = '' + t + ' 🔒 DM ' + arrow + ': ' + renderMd(text); + d.querySelector('.dm-tag').onclick = function() { + $input.value = '/dm @' + this.dataset.reply + ' '; + $input.focus(); + }; $msg.appendChild(d); $msg.scrollTop = $msg.scrollHeight; } catch(e) { const d = document.createElement('div'); d.className = 'msg'; + const replyTo = data.user; const t = new Date(data.ts * 1000).toLocaleTimeString([], {hour:'2-digit',minute:'2-digit'}); - d.innerHTML = '' + t + ' 🔒 DM from ' + esc(data.user) + ': [cannot decrypt]'; + d.innerHTML = '' + t + ' 🔒 DM from ' + esc(data.user) + ': [cannot decrypt]'; + d.querySelector('.dm-tag').onclick = function() { + $input.value = '/dm @' + this.dataset.reply + ' '; + $input.focus(); + }; $msg.appendChild(d); $msg.scrollTop = $msg.scrollHeight; }