fix: preserve completed mobile onboarding during draft sync
All checks were successful
CI / lint (pull_request) Successful in 3m21s
CI / build-release (pull_request) Successful in 6s
CI / browser-journey (pull_request) Successful in 6m25s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy 2026-08-25 13:35:51 +00:00
parent fa876e1e38
commit d273de3506
2 changed files with 4 additions and 3 deletions

View File

@ -3413,11 +3413,11 @@
} }
async function refreshPhotoDraftInbox() { async function refreshPhotoDraftInbox() {
try { await photoDraftInbox.refresh(draftInbox.list()); refreshMyWorkView({ reconcileSession:false }); } try { await photoDraftInbox.refresh(draftInbox.list()); refreshMyWorkView({ reconcileSession:false, refreshFirstTask:false }); }
catch (_error) { /* Local photo inventory must not break My Work. */ } catch (_error) { /* Local photo inventory must not break My Work. */ }
} }
function refreshMyWorkView({ reconcileSession = true } = {}) { function refreshMyWorkView({ reconcileSession = true, refreshFirstTask = true } = {}) {
lastDrafts = listDrafts(); lastDrafts = listDrafts();
const actionableMyWork = filedHistoryTabs.prepare(lastMyWork); const actionableMyWork = filedHistoryTabs.prepare(lastMyWork);
const partitioned = laterWork.partition(actionableMyWork, { const partitioned = laterWork.partition(actionableMyWork, {
@ -3471,7 +3471,7 @@
}); });
mobileStartDay.render(); mobileStartDay.render();
mobileTaskDock.updateQueues(counts); mobileTaskDock.updateQueues(counts);
mobileFirstTask.refresh(); if (refreshFirstTask) mobileFirstTask.refresh();
mobileTaskDock.updateWork(mobileWorkEntry.mode()); mobileTaskDock.updateWork(mobileWorkEntry.mode());
mobileTaskDock.updateAttention(countMyWork(activeMyWork).attention); mobileTaskDock.updateAttention(countMyWork(activeMyWork).attention);
const activeQueue = qs('[data-work-filter="' + selectedWorkFilter + '"]'); const activeQueue = qs('[data-work-filter="' + selectedWorkFilter + '"]');

View File

@ -102,6 +102,7 @@ def test_mobile_my_work_discovers_reopens_and_discards_photo_only_reply_drafts()
assert "const photoDraftInbox = createPhotoDraftInbox({" in dashboard assert "const photoDraftInbox = createPhotoDraftInbox({" in dashboard
assert "draftInbox.list().concat(photoDraftInbox.list(), unfiled)" in dashboard assert "draftInbox.list().concat(photoDraftInbox.list(), unfiled)" in dashboard
assert "await photoDraftInbox.refresh(draftInbox.list())" in dashboard assert "await photoDraftInbox.refresh(draftInbox.list())" in dashboard
assert "refreshMyWorkView({ reconcileSession:false, refreshFirstTask:false })" in dashboard
assert "void refreshPhotoDraftInbox();" in dashboard assert "void refreshPhotoDraftInbox();" in dashboard
assert "onChange:() => { void refreshPhotoDraftInbox(); }" in dashboard assert "onChange:() => { void refreshPhotoDraftInbox(); }" in dashboard
assert "await searchReplyDraftStore.save(target, attachments);\n void refreshPhotoDraftInbox();" in dashboard assert "await searchReplyDraftStore.save(target, attachments);\n void refreshPhotoDraftInbox();" in dashboard