From edd5deaf5afd0160fbcda49aa16565b714411d81 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 28 Aug 2026 16:09:51 +0200 Subject: [PATCH] Honor reload abort in backup restore --- web/app.jsx | 3 ++- webapp/index-style-v2.html | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/web/app.jsx b/web/app.jsx index 5b4e5b4..dacef73 100644 --- a/web/app.jsx +++ b/web/app.jsx @@ -943,7 +943,8 @@ function App() { if (!result.ok) throw new Error(result.error || 'Restore failed'); if (Storage.mode === 'api') { // The legacy backup route restored the default project — refresh everything. - await reloadProjects({ seedExpanded: false }); + // Null = flush failed ('Save failed' toast shown there); keep dirty state, skip success toast. + if (!(await reloadProjects({ seedExpanded: false }))) return; await SyncPoller.syncChecksums(); } else { const [raw, backups, sizeInfo] = await Promise.all([Storage.load(), Storage.listBackups(), Storage.getHealthInfo()]); diff --git a/webapp/index-style-v2.html b/webapp/index-style-v2.html index 67ca440..5278264 100644 --- a/webapp/index-style-v2.html +++ b/webapp/index-style-v2.html @@ -8609,9 +8609,10 @@ function App() { if (!result.ok) throw new Error(result.error || 'Restore failed'); if (Storage.mode === 'api') { // The legacy backup route restored the default project — refresh everything. - await reloadProjects({ + // Null = flush failed ('Save failed' toast shown there); keep dirty state, skip success toast. + if (!(await reloadProjects({ seedExpanded: false - }); + }))) return; await SyncPoller.syncChecksums(); } else { const [raw, backups, sizeInfo] = await Promise.all([Storage.load(), Storage.listBackups(), Storage.getHealthInfo()]);