diff --git a/frontend/dashboard.css b/frontend/dashboard.css index 279501c..cd84e98 100644 --- a/frontend/dashboard.css +++ b/frontend/dashboard.css @@ -1031,6 +1031,14 @@ textarea { resize: vertical; min-height: 120px; } .mobile-queue-panel { padding:16px; padding-bottom:calc(16px + env(safe-area-inset-bottom)); } .mobile-queue-panel header { display:flex; align-items:center; justify-content:space-between; gap:12px; } .mobile-queue-panel h2 { margin:0; } + .mobile-delivery-recovery { box-sizing:border-box; width:100%; max-width:none; max-height:100dvh; margin:auto 0 0; padding:0; border:0; border-radius:18px 18px 0 0; color:var(--text); background:#102641; } + .mobile-delivery-recovery::backdrop { background:rgba(3,9,18,.78); } + .mobile-delivery-recovery-panel { box-sizing:border-box; display:grid; gap:12px; width:100%; padding:18px; padding-bottom:calc(18px + env(safe-area-inset-bottom)); overflow-wrap:anywhere; } + .mobile-delivery-recovery-panel header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; } + .mobile-delivery-recovery-panel h2, .mobile-delivery-recovery-panel p { margin:0; } + .mobile-delivery-recovery-panel button { min-height:48px; } + .mobile-delivery-recovery-panel > #mobile-delivery-recovery-action { width:100%; font-weight:800; } + .delivery-recovery-reason { padding:12px; border:1px solid #31577f; border-radius:12px; background:#0b1c30; } .mobile-start-day { display:grid; gap:12px; max-width:100%; overflow-wrap:anywhere; margin-top:12px; padding:14px; border:1px solid #31577f; border-radius:14px; background:linear-gradient(135deg,#173b64,#102641); } .mobile-start-day h3, .mobile-start-day p { margin:0; } .mobile-start-day p + p { margin-top:4px; } diff --git a/frontend/dashboard.js b/frontend/dashboard.js index a03ed47..0ddecf8 100644 --- a/frontend/dashboard.js +++ b/frontend/dashboard.js @@ -91,14 +91,15 @@ qs('#my-work').focus(); } let mobileQueueCounts = {}; - function openDeliveryRecovery() { - selectMobileQueue('draft'); - const deliveryCenterTitle = qs('#delivery-center-title'); - if (!deliveryCenterTitle) return 'empty'; - deliveryCenterTitle.scrollIntoView({block:'start'}); - deliveryCenterTitle.focus({preventScroll:true}); - return 'opened'; - } + const mobileDeliveryRecovery = createMobileDeliveryRecovery({ + getItems: () => draftInbox.partition(lastDrafts).deliveries, + getIndex: item => lastDrafts.indexOf(item), + beforeOpen: () => selectMobileQueue('draft'), + onComplete: () => { + if (!mobileStartDay.completePhase('delivery')) showMobileQueueCompletion('Delivery', true); + }, + }); + mobileDeliveryRecovery.start(); function openFiledFollowUp() { selectMobileQueue('filed'); const target = filedFollowUpTarget(completedFiledReview.visible(lastMyWork)); @@ -112,7 +113,7 @@ return target.kind === 'update' ? 'opened-update' : 'opened-issue'; } const mobileQueueLauncher = createMobileQueueLauncher({ - openDelivery: openDeliveryRecovery, + openDelivery: () => mobileDeliveryRecovery.open(), openToday: () => mobileWorkEntry.open(), openAgenda: openAgendaSession, openUpdates: openUpdateTriage, @@ -3338,6 +3339,7 @@ qs('#my-work-action-status').textContent = 'Draft discarded.'; }); }); + mobileDeliveryRecovery.render(); } function updateWorkPaginationControls() { diff --git a/frontend/index.html b/frontend/index.html index 16b0332..9206ad9 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1543,6 +1543,20 @@ + +
+
+

Recover delivery

+ +
+

+

+

+ +
Other recovery options

Close this guide to edit, copy, or discard the saved delivery from Drafts.

+
+
+