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:
14
chat.py
14
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 = '<span class="ts">' + t + '</span> <span style="color:#ff6b9d">🔒 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">🔒 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">🔒 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">🔒 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user