SFX emojis, non-blocking email view, deploy/git docs in CLAUDE.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -771,3 +771,4 @@ section h2 {
|
||||
.email-subject { font-size: 0.85rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.email-preview { font-size: 0.8rem; color: var(--text-muted); line-height: 1.3; }
|
||||
.email-item .vm-actions { margin-top: 0.25rem; }
|
||||
.email-body-expanded { margin-top: 0.4rem; padding: 0.5rem; background: rgba(232, 121, 29, 0.08); border-radius: var(--radius-sm); font-size: 0.85rem; line-height: 1.5; white-space: pre-wrap; max-height: 200px; overflow-y: auto; }
|
||||
|
||||
@@ -1418,10 +1418,17 @@ function escapeHtml(str) {
|
||||
}
|
||||
|
||||
function viewEmail(id) {
|
||||
const item = document.querySelector(`.email-item[data-id="${id}"]`);
|
||||
if (!item) return;
|
||||
const existing = item.querySelector('.email-body-expanded');
|
||||
if (existing) { existing.remove(); return; }
|
||||
fetch('/api/emails').then(r => r.json()).then(emails => {
|
||||
const em = emails.find(e => e.id === id);
|
||||
if (!em) return;
|
||||
alert(`From: ${em.sender}\nSubject: ${em.subject}\n\n${em.body}`);
|
||||
const div = document.createElement('div');
|
||||
div.className = 'email-body-expanded';
|
||||
div.textContent = em.body;
|
||||
item.appendChild(div);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user