refactor: better profile creation handling and navigation

This commit is contained in:
zhom
2025-08-15 23:31:13 +04:00
parent a1f153f4fa
commit 7a0d14642a
2 changed files with 21 additions and 11 deletions
+14 -9
View File
@@ -334,15 +334,21 @@ pub struct ApiClient {
}
impl ApiClient {
fn new() -> Self {
pub fn new() -> Self {
let client = Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()
.unwrap_or_else(|_| Client::new());
Self {
client: Client::new(),
client,
firefox_api_base: "https://product-details.mozilla.org/1.0".to_string(),
firefox_dev_api_base: "https://product-details.mozilla.org/1.0".to_string(),
github_api_base: "https://api.github.com".to_string(),
chromium_api_base: "https://commondatastorage.googleapis.com/chromium-browser-snapshots"
.to_string(),
tor_archive_base: "https://archive.torproject.org/tor-package-archive/torbrowser".to_string(),
tor_archive_base: "https://archive.torproject.org/tor-package-archive/torbrowser"
.to_string(),
}
}
@@ -653,13 +659,12 @@ impl ApiClient {
.await?;
if !response.status().is_success() {
return Err(
format!(
"Failed to fetch Firefox Developer Edition versions: {}",
response.status()
)
.into(),
let error_msg = format!(
"Failed to fetch Firefox Developer Edition versions: {} - URL: {}",
response.status(), url
);
eprintln!("{}", error_msg);
return Err(error_msg.into());
}
let firefox_response: FirefoxApiResponse = response.json().await?;
+7 -2
View File
@@ -236,10 +236,14 @@ export function CreateProfileDialog({
// Load data when dialog opens
useEffect(() => {
if (isOpen) {
// Ensure we have a selected browser
if (!selectedBrowser) {
setSelectedBrowser("camoufox");
}
void loadSupportedBrowsers();
void loadStoredProxies();
// Load camoufox release types when dialog opens
void loadReleaseTypes("camoufox");
void loadReleaseTypes(selectedBrowser || "camoufox");
// Check and download GeoIP database if needed for Camoufox
void checkAndDownloadGeoIPDatabase();
}
@@ -249,6 +253,7 @@ export function CreateProfileDialog({
loadStoredProxies,
loadReleaseTypes,
checkAndDownloadGeoIPDatabase,
selectedBrowser,
]);
// Load release types when browser selection changes
@@ -361,7 +366,7 @@ export function CreateProfileDialog({
// Reset all states
setProfileName("");
setSelectedBrowser(null);
setSelectedBrowser("camoufox"); // Set default browser instead of null
setSelectedProxyId(undefined);
setReleaseTypes({});
setCamoufoxConfig({