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()]);