diff --git a/src-tauri/src/profile_importer.rs b/src-tauri/src/profile_importer.rs index 7a43bd8..44b4f91 100644 --- a/src-tauri/src/profile_importer.rs +++ b/src-tauri/src/profile_importer.rs @@ -708,7 +708,7 @@ impl ProfileImporter { &self, browser_type: &str, ) -> Result> { - // Try to get a downloaded version first, fallback to a reasonable default + // Check if any version of the browser is downloaded let registry = crate::downloaded_browsers::DownloadedBrowsersRegistry::load().unwrap_or_default(); let downloaded_versions = registry.get_downloaded_versions(browser_type); @@ -717,17 +717,12 @@ impl ProfileImporter { return Ok(version.clone()); } - // If no downloaded versions, return a sensible default - match browser_type { - "firefox" => Ok("latest".to_string()), - "firefox-developer" => Ok("latest".to_string()), - "chromium" => Ok("latest".to_string()), - "brave" => Ok("latest".to_string()), - "zen" => Ok("latest".to_string()), - "mullvad-browser" => Ok("13.5.16".to_string()), // Mullvad Browser common version - "tor-browser" => Ok("latest".to_string()), - _ => Ok("latest".to_string()), - } + // If no downloaded versions found, return an error + Err(format!( + "No downloaded versions found for browser '{}'. Please download a version of {} first before importing profiles.", + browser_type, + self.get_browser_display_name(browser_type) + ).into()) } /// Recursively copy directory contents diff --git a/src/components/import-profile-dialog.tsx b/src/components/import-profile-dialog.tsx index cf81f71..a053bf3 100644 --- a/src/components/import-profile-dialog.tsx +++ b/src/components/import-profile-dialog.tsx @@ -142,7 +142,19 @@ export function ImportProfileDialog({ console.error("Failed to import profile:", error); const errorMessage = error instanceof Error ? error.message : String(error); - toast.error(`Failed to import profile: ${errorMessage}`); + + // Check if error is about browser not being downloaded + if (errorMessage.includes("No downloaded versions found")) { + const browserDisplayName = getBrowserDisplayName(profile.browser); + toast.error( + `${browserDisplayName} is not installed. Please download ${browserDisplayName} first from the main window, then try importing again.`, + { + duration: 8000, + }, + ); + } else { + toast.error(`Failed to import profile: ${errorMessage}`); + } } finally { setIsImporting(false); } @@ -183,7 +195,19 @@ export function ImportProfileDialog({ console.error("Failed to import profile:", error); const errorMessage = error instanceof Error ? error.message : String(error); - toast.error(`Failed to import profile: ${errorMessage}`); + + // Check if error is about browser not being downloaded + if (errorMessage.includes("No downloaded versions found")) { + const browserDisplayName = getBrowserDisplayName(manualBrowserType); + toast.error( + `${browserDisplayName} is not installed. Please download ${browserDisplayName} first from the main window, then try importing again.`, + { + duration: 8000, + }, + ); + } else { + toast.error(`Failed to import profile: ${errorMessage}`); + } } finally { setIsImporting(false); }