From 0793fc299d3cf824857d46fc5054f9068f6184bc Mon Sep 17 00:00:00 2001 From: Will Chen Date: Thu, 31 Jul 2025 16:13:46 -0700 Subject: [PATCH] Fix vercel deployment fetching (#758) --- src/components/VercelConnector.tsx | 51 +++++++++-------------------- src/hooks/useVercelDeployments.ts | 50 ++++++++++++++++++++++++++++ src/ipc/handlers/vercel_handlers.ts | 12 ++----- src/ipc/ipc_types.ts | 18 +++++----- 4 files changed, 76 insertions(+), 55 deletions(-) create mode 100644 src/hooks/useVercelDeployments.ts diff --git a/src/components/VercelConnector.tsx b/src/components/VercelConnector.tsx index 7c8caf9..13d5705 100644 --- a/src/components/VercelConnector.tsx +++ b/src/components/VercelConnector.tsx @@ -4,6 +4,7 @@ import { Globe } from "lucide-react"; import { IpcClient } from "@/ipc/ipc_client"; import { useSettings } from "@/hooks/useSettings"; import { useLoadApp } from "@/hooks/useLoadApp"; +import { useVercelDeployments } from "@/hooks/useVercelDeployments"; import { Select, SelectContent, @@ -14,7 +15,7 @@ import { import {} from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; -import { App, VercelDeployment } from "@/ipc/ipc_types"; +import { App } from "@/ipc/ipc_types"; interface VercelConnectorProps { appId: number | null; @@ -46,41 +47,19 @@ function ConnectedVercelConnector({ app, refreshApp, }: ConnectedVercelConnectorProps) { - const [isLoadingDeployments, setIsLoadingDeployments] = useState(false); - const [deploymentsError, setDeploymentsError] = useState(null); - const [deployments, setDeployments] = useState([]); - const [isDisconnecting, setIsDisconnecting] = useState(false); - const [disconnectError, setDisconnectError] = useState(null); + const { + deployments, + isLoading: isLoadingDeployments, + error: deploymentsError, + getDeployments: handleGetDeployments, + disconnectProject, + isDisconnecting, + disconnectError, + } = useVercelDeployments(appId); const handleDisconnectProject = async () => { - setIsDisconnecting(true); - setDisconnectError(null); - try { - await IpcClient.getInstance().disconnectVercelProject({ appId }); - refreshApp(); - } catch (err: any) { - setDisconnectError(err.message || "Failed to disconnect project."); - } finally { - setIsDisconnecting(false); - } - }; - - const handleGetDeployments = async () => { - setIsLoadingDeployments(true); - setDeploymentsError(null); - - try { - const result = await IpcClient.getInstance().getVercelDeployments({ - appId, - }); - setDeployments(result); - } catch (err: any) { - setDeploymentsError( - err.message || "Failed to get deployments from Vercel.", - ); - } finally { - setIsLoadingDeployments(false); - } + await disconnectProject(); + refreshApp(); }; return ( @@ -154,7 +133,7 @@ function ConnectedVercelConnector({ Getting Deployments... ) : ( - "Get Deployments" + "Refresh Deployments" )}