Click on DM lock icon to pre-fill /dm @username in input

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Siavash Sameni
2026-03-26 17:04:31 +04:00
parent 811dd2c008
commit 93c8c84de1

14
chat.py
View File

@@ -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 = '<span class="ts">' + t + '</span> <span style="color:#ff6b9d">&#128274; DM ' + arrow + '</span>: ' + renderMd(text);
const replyTo = data.user === myName ? data.to : data.user;
d.innerHTML = '<span class="ts">' + t + '</span> <span class="dm-tag" data-reply="' + esc(replyTo) + '" style="color:#ff6b9d;cursor:pointer" title="Click to reply">&#128274; DM ' + arrow + '</span>: ' + 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 = '<span class="ts">' + t + '</span> <span style="color:#ff6b9d">&#128274; DM from ' + esc(data.user) + '</span>: <em>[cannot decrypt]</em>';
d.innerHTML = '<span class="ts">' + t + '</span> <span class="dm-tag" data-reply="' + esc(replyTo) + '" style="color:#ff6b9d;cursor:pointer" title="Click to reply">&#128274; DM from ' + esc(data.user) + '</span>: <em>[cannot decrypt]</em>';
d.querySelector('.dm-tag').onclick = function() {
$input.value = '/dm @' + this.dataset.reply + ' ';
$input.focus();
};
$msg.appendChild(d);
$msg.scrollTop = $msg.scrollHeight;
}