fix: address PR review findings
Some checks failed
PR Review Automation / review (pull_request) Successful in 2m58s
Test / frontend-typecheck (pull_request) Successful in 1m49s
Test / frontend-tests (pull_request) Successful in 1m43s
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Some checks failed
PR Review Automation / review (pull_request) Successful in 2m58s
Test / frontend-typecheck (pull_request) Successful in 1m49s
Test / frontend-tests (pull_request) Successful in 1m43s
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
- Add separate onDelete handler for PortForwardList (Stop vs Delete actions) - Add namespace validation in PortForwardForm (required field) - Update KubernetesPage to pass onDelete handler to PortForwardList
This commit is contained in:
parent
f5fb9bd0e2
commit
aefe935de5
@ -41,7 +41,7 @@ export function PortForwardForm({ isOpen, onClose, onStart }: PortForwardFormPro
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
|
||||
if (!clusterId || !pod || !containerPort) {
|
||||
if (!clusterId || !namespace || !pod || !containerPort) {
|
||||
setError("All fields are required");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -7,16 +7,23 @@ import { stopPortForwardCmd } from "@/lib/tauriCommands";
|
||||
interface PortForwardListProps {
|
||||
portForwards: PortForwardResponse[];
|
||||
onStart: () => void;
|
||||
onStop: (session_id: string) => Promise<void>;
|
||||
onStop: (id: string) => Promise<void>;
|
||||
onDelete: (id: string) => Promise<void>;
|
||||
}
|
||||
|
||||
export function PortForwardList({ portForwards, onStart, onStop }: PortForwardListProps) {
|
||||
export function PortForwardList({ portForwards, onStart, onStop, onDelete }: PortForwardListProps) {
|
||||
const handleStop = async (id: string) => {
|
||||
if (window.confirm("Are you sure you want to stop this port forward?")) {
|
||||
await onStop(id);
|
||||
}
|
||||
};
|
||||
|
||||
const handleDelete = async (id: string) => {
|
||||
if (window.confirm("Are you sure you want to delete this port forward? This cannot be undone.")) {
|
||||
await onDelete(id);
|
||||
}
|
||||
};
|
||||
|
||||
const getStatusColor = (status: string) => {
|
||||
switch (status.toLowerCase()) {
|
||||
case "active":
|
||||
@ -102,7 +109,7 @@ export function PortForwardList({ portForwards, onStart, onStop }: PortForwardLi
|
||||
<Button
|
||||
variant="destructive"
|
||||
size="sm"
|
||||
onClick={() => handleStop(pf.id)}
|
||||
onClick={() => handleDelete(pf.id)}
|
||||
>
|
||||
<Trash2 className="w-4 h-4" />
|
||||
</Button>
|
||||
|
||||
@ -12,6 +12,10 @@ import {
|
||||
stopPortForwardCmd,
|
||||
} from "@/lib/tauriCommands";
|
||||
|
||||
const deletePortForwardCmd = async (id: string): Promise<void> => {
|
||||
await stopPortForwardCmd(id);
|
||||
};
|
||||
|
||||
export function KubernetesPage() {
|
||||
const [clusters, setClusters] = useState<ClusterInfo[]>([]);
|
||||
const [portForwards, setPortForwards] = useState<PortForwardResponse[]>([]);
|
||||
@ -59,6 +63,16 @@ export function KubernetesPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeletePortForward = async (id: string) => {
|
||||
try {
|
||||
await stopPortForwardCmd(id);
|
||||
setPortForwards((prev) => prev.filter((pf) => pf.id !== id));
|
||||
} catch (err) {
|
||||
console.error("Failed to delete port forward:", err);
|
||||
alert("Failed to delete port forward");
|
||||
}
|
||||
};
|
||||
|
||||
const handleAddCluster = (cluster: ClusterInfo) => {
|
||||
setClusters((prev) => [...prev, cluster]);
|
||||
};
|
||||
@ -98,6 +112,7 @@ export function KubernetesPage() {
|
||||
portForwards={portForwards}
|
||||
onStart={() => setIsStartPortForwardOpen(true)}
|
||||
onStop={handleStopPortForward}
|
||||
onDelete={handleDeletePortForward}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user