diff --git a/frontend/js/main.js b/frontend/js/main.js index 9e3659a..1223bcb 100644 --- a/frontend/js/main.js +++ b/frontend/js/main.js @@ -3008,9 +3008,14 @@ function esc(str) { window.addEventListener("popstate", (e) => { // If a modal is open, don't handle here (modal has its own handler) if (document.querySelector(".modal-overlay")) return; + // Stale modal/chart entries left after app restart — skip them + if (e.state && (e.state.modal || e.state.chartFull)) { + history.back(); + return; + } // Pop our nav stack and navigate to previous screen if (navStack.length > 1) { - navStack.pop(); // remove current + navStack.pop(); const prev = navStack[navStack.length - 1]; renderScreen(prev, true); } else if (e.state && e.state.screen) { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2290399..4e71f13 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -242,7 +242,7 @@ fn import_seed_products(app: tauri::AppHandle) -> Result { // Sync nutrients_guessed flag let _ = main_db.execute_batch( "UPDATE main.products SET nutrients_guessed = 1 - WHERE nutrients_guessed IS NULL OR nutrients_guessed = 0 + WHERE (nutrients_guessed IS NULL OR nutrients_guessed = 0) AND name_lower IN (SELECT s.name_lower FROM seed.products s WHERE s.nutrients_guessed = 1)" ); // Sync micronutrients for products that have them in seed but not in main