From d70ec16706425fa6b5253fc7aa5c5e0f8437a4a5 Mon Sep 17 00:00:00 2001 From: zhom <2717306+zhom@users.noreply.github.com> Date: Mon, 18 Aug 2025 18:10:37 +0400 Subject: [PATCH] refacto: use backend events for ui update --- src/components/create-profile-dialog.tsx | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/components/create-profile-dialog.tsx b/src/components/create-profile-dialog.tsx index 07acdcc..90aebd1 100644 --- a/src/components/create-profile-dialog.tsx +++ b/src/components/create-profile-dialog.tsx @@ -1,7 +1,6 @@ "use client"; import { invoke } from "@tauri-apps/api/core"; -import { emit } from "@tauri-apps/api/event"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { GoPlus } from "react-icons/go"; import { LoadingButton } from "@/components/loading-button"; @@ -27,8 +26,9 @@ import { } from "@/components/ui/select"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useBrowserDownload } from "@/hooks/use-browser-download"; +import { useProxyEvents } from "@/hooks/use-proxy-events"; import { getBrowserIcon } from "@/lib/browser-utils"; -import type { BrowserReleaseTypes, CamoufoxConfig, StoredProxy } from "@/types"; +import type { BrowserReleaseTypes, CamoufoxConfig } from "@/types"; import { RippleButton } from "./ui/ripple"; type BrowserTypeString = @@ -122,7 +122,7 @@ export function CreateProfileDialog({ }); const [supportedBrowsers, setSupportedBrowsers] = useState([]); - const [storedProxies, setStoredProxies] = useState([]); + const { storedProxies } = useProxyEvents(); const [showProxyForm, setShowProxyForm] = useState(false); const [isCreating, setIsCreating] = useState(false); const [releaseTypes, setReleaseTypes] = useState(); @@ -145,15 +145,6 @@ export function CreateProfileDialog({ } }, []); - const loadStoredProxies = useCallback(async () => { - try { - const proxies = await invoke("get_stored_proxies"); - setStoredProxies(proxies); - } catch (error) { - console.error("Failed to load stored proxies:", error); - } - }, []); - const checkAndDownloadGeoIPDatabase = useCallback(async () => { try { const isAvailable = await invoke("is_geoip_database_available"); @@ -241,7 +232,6 @@ export function CreateProfileDialog({ setSelectedBrowser("camoufox"); } void loadSupportedBrowsers(); - void loadStoredProxies(); // Load camoufox release types when dialog opens void loadReleaseTypes(selectedBrowser || "camoufox"); // Check and download GeoIP database if needed for Camoufox @@ -250,7 +240,6 @@ export function CreateProfileDialog({ }, [ isOpen, loadSupportedBrowsers, - loadStoredProxies, loadReleaseTypes, checkAndDownloadGeoIPDatabase, selectedBrowser, @@ -642,11 +631,6 @@ export function CreateProfileDialog({ setShowProxyForm(false)} - onSave={(proxy) => { - setStoredProxies((prev) => [...prev, proxy]); - setSelectedProxyId(proxy.id); - void emit("stored-proxies-changed"); - }} /> );