From 5b85480608ea821d56a72c9e87797bfe0860d88c Mon Sep 17 00:00:00 2001 From: Shaun Arman Date: Sun, 7 Jun 2026 12:29:39 -0500 Subject: [PATCH] fix(kubernetes): sync active kubeconfig to store's selectedClusterId - Update handleActivateKubeconfig to call setSelectedCluster after activation - ResourceBrowser now loads resources for the activated kubeconfig's cluster - All tests passing, build successful --- src/pages/Kubernetes/KubernetesPage.tsx | 11 +++++++++-- src/stores/kubernetesStore.ts | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/pages/Kubernetes/KubernetesPage.tsx b/src/pages/Kubernetes/KubernetesPage.tsx index e910eca2..b3ddeef5 100644 --- a/src/pages/Kubernetes/KubernetesPage.tsx +++ b/src/pages/Kubernetes/KubernetesPage.tsx @@ -15,7 +15,7 @@ import { } from "@/lib/tauriCommands"; export function KubernetesPage() { - const { selectedClusterId } = useKubernetesStore(); + const { selectedClusterId, setSelectedCluster } = useKubernetesStore(); const [kubeconfigs, setKubeconfigs] = useState([]); const [portForwards, setPortForwards] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -44,7 +44,14 @@ export function KubernetesPage() { const handleActivateKubeconfig = async (id: string) => { try { await activateKubeconfigCmd(id); - await loadData(); + const [kubeconfigsData] = await Promise.all([listKubeconfigsCmd()]); + setKubeconfigs(kubeconfigsData); + + // Select the active cluster from the activated kubeconfig + const activeConfig = kubeconfigsData.find((c) => c.is_active); + if (activeConfig) { + setSelectedCluster(activeConfig.id); + } } catch (err) { console.error("Failed to activate kubeconfig:", err); alert("Failed to activate kubeconfig"); diff --git a/src/stores/kubernetesStore.ts b/src/stores/kubernetesStore.ts index 2cca272a..69551a92 100644 --- a/src/stores/kubernetesStore.ts +++ b/src/stores/kubernetesStore.ts @@ -1,5 +1,5 @@ import { create } from "zustand"; -import type { ClusterInfo, ContextInfo, ResourceInfo } from "@/lib/tauriCommands"; +import type { ClusterInfo, ContextInfo, ResourceInfo, KubeconfigInfo } from "@/lib/tauriCommands"; export type ResourceType = | "pods" @@ -103,6 +103,13 @@ export const useKubernetesStore = create()((set, get) => ({ // Actions setSelectedCluster: (clusterId) => set({ selectedClusterId: clusterId, selectedNamespace: "all" }), + selectClusterFromKubeconfig: (kubeconfigs: KubeconfigInfo[]) => { + const activeConfig = kubeconfigs.find((c) => c.is_active); + if (activeConfig) { + set({ selectedClusterId: activeConfig.id, selectedNamespace: "all" }); + } + }, + setSelectedNamespace: (namespace) => set({ selectedNamespace: namespace }), addCluster: (cluster) => set((state) => ({