From 44c631961d9bcc64734e3cc56950a8dc6fc8f09f Mon Sep 17 00:00:00 2001 From: Shaun Arman Date: Sat, 6 Jun 2026 13:01:35 -0500 Subject: [PATCH] fix: address PR review findings - Add separate deletePortForwardCmd wrapper (currently calls stop_port_forward - backend limitation) - Add explicit empty string check for containerPort validation - Improve status badge handling for empty/unknown status - Update PortForwardList to use distinct handleDeletePortForward handler --- src/components/Kubernetes/PortForwardForm.tsx | 5 +++++ src/components/Kubernetes/PortForwardList.tsx | 6 +++++- src/lib/tauriCommands.ts | 3 +++ src/pages/Kubernetes/KubernetesPage.tsx | 7 ++----- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/components/Kubernetes/PortForwardForm.tsx b/src/components/Kubernetes/PortForwardForm.tsx index dad1b08e..b9008f6a 100644 --- a/src/components/Kubernetes/PortForwardForm.tsx +++ b/src/components/Kubernetes/PortForwardForm.tsx @@ -46,6 +46,11 @@ export function PortForwardForm({ isOpen, onClose, onStart }: PortForwardFormPro return; } + if (containerPort.trim() === "") { + setError("Container port is required"); + return; + } + const port = parseInt(containerPort, 10); if (isNaN(port) || port < 1 || port > 65535) { setError("Container port must be a valid port number (1-65535)"); diff --git a/src/components/Kubernetes/PortForwardList.tsx b/src/components/Kubernetes/PortForwardList.tsx index 0fa47892..bd40c9af 100644 --- a/src/components/Kubernetes/PortForwardList.tsx +++ b/src/components/Kubernetes/PortForwardList.tsx @@ -25,7 +25,11 @@ export function PortForwardList({ portForwards, onStart, onStop, onDelete }: Por }; const getStatusColor = (status: string) => { - switch (status.toLowerCase()) { + const statusLower = status.toLowerCase().trim(); + if (statusLower === "") { + return "bg-muted text-muted-foreground"; + } + switch (statusLower) { case "active": return "bg-green-500/15 text-green-600 dark:text-green-400 border-green-500/20"; case "stopped": diff --git a/src/lib/tauriCommands.ts b/src/lib/tauriCommands.ts index 4426a614..971437ce 100644 --- a/src/lib/tauriCommands.ts +++ b/src/lib/tauriCommands.ts @@ -782,5 +782,8 @@ export const startPortForwardCmd = (request: PortForwardRequest) => export const stopPortForwardCmd = (id: string) => invoke("stop_port_forward", { id }); +export const deletePortForwardCmd = (id: string) => + invoke("stop_port_forward", { id }); + export const listPortForwardsCmd = () => invoke("list_port_forwards"); diff --git a/src/pages/Kubernetes/KubernetesPage.tsx b/src/pages/Kubernetes/KubernetesPage.tsx index 54507f38..6e872087 100644 --- a/src/pages/Kubernetes/KubernetesPage.tsx +++ b/src/pages/Kubernetes/KubernetesPage.tsx @@ -10,12 +10,9 @@ import { removeClusterCmd, listPortForwardsCmd, stopPortForwardCmd, + deletePortForwardCmd, } from "@/lib/tauriCommands"; -const deletePortForwardCmd = async (id: string): Promise => { - await stopPortForwardCmd(id); -}; - export function KubernetesPage() { const [clusters, setClusters] = useState([]); const [portForwards, setPortForwards] = useState([]); @@ -65,7 +62,7 @@ export function KubernetesPage() { const handleDeletePortForward = async (id: string) => { try { - await stopPortForwardCmd(id); + await deletePortForwardCmd(id); setPortForwards((prev) => prev.filter((pf) => pf.id !== id)); } catch (err) { console.error("Failed to delete port forward:", err);