Show email delete overlay before request

This commit is contained in:
pewdiepie-archdaemon
2026-06-28 22:41:09 +00:00
parent 1e78ac999d
commit 240768a7a1
3 changed files with 22 additions and 3 deletions
+3
View File
@@ -1185,6 +1185,7 @@ async function _deleteEmail(em) {
if (!ok) return;
const row = document.querySelector(`.email-item[data-uid="${CSS.escape(String(em.uid))}"]`);
const busy = _showEmailDeleteOverlay(row);
await busy?.ready;
try {
await fetch(`${API_BASE}/api/email/delete/${em.uid}?folder=${encodeURIComponent(_currentFolder)}${_acct()}`, { method: 'DELETE' });
busy?.remove?.();
@@ -1208,7 +1209,9 @@ function _showEmailDeleteOverlay(target) {
target.style.pointerEvents = 'none';
target.classList.add('email-delete-busy');
target.appendChild(overlay);
const ready = new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)));
return {
ready,
remove() {
try { wp.destroy?.(); } catch (_) {}
overlay.remove();