From 51fb963b93020e792e8e43c501e6f0987e0b7d63 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Mon, 25 Jan 2021 16:07:58 +0300 Subject: [PATCH] A bit of cleaning up, fixing tests Signed-off-by: Alex Andreev --- .../components/dock/log-resource-selector.tsx | 14 +----- src/renderer/components/dock/log-tab.store.ts | 45 +++++++++---------- 2 files changed, 24 insertions(+), 35 deletions(-) diff --git a/src/renderer/components/dock/log-resource-selector.tsx b/src/renderer/components/dock/log-resource-selector.tsx index a9d1366eba..b41a838e20 100644 --- a/src/renderer/components/dock/log-resource-selector.tsx +++ b/src/renderer/components/dock/log-resource-selector.tsx @@ -8,7 +8,7 @@ import { Badge } from "../badge"; import { Select, SelectOption } from "../select"; import { LogTabData } from "./log-tab.store"; import { podsStore } from "../+workloads-pods/pods.store"; -import { dockStore, TabId } from "./dock.store"; +import { TabId } from "./dock.store"; interface Props { tabId: TabId @@ -18,7 +18,7 @@ interface Props { } export const LogResourceSelector = observer((props: Props) => { - const { tabData, save, reload, tabId } = props; + const { tabData, save, reload } = props; const { selectedPod, selectedContainer, pods } = tabData; const pod = new Pod(selectedPod); const containers = pod.getContainers(); @@ -33,14 +33,6 @@ export const LogResourceSelector = observer((props: Props) => { reload(); }; - const selectFirstContainer = () => { - save({ selectedContainer: pod.getAllContainers()[0] }); - }; - - const renameTab = () => { - dockStore.renameTab(tabId, `Pod ${pod.getName()}`); - }; - const onPodChange = (option: SelectOption) => { const selectedPod = podsStore.getByName(option.value, pod.getNs()); @@ -75,8 +67,6 @@ export const LogResourceSelector = observer((props: Props) => { ]; useEffect(() => { - selectFirstContainer(); - renameTab(); reload(); }, [selectedPod]); diff --git a/src/renderer/components/dock/log-tab.store.ts b/src/renderer/components/dock/log-tab.store.ts index f54d8845ae..74c2714ceb 100644 --- a/src/renderer/components/dock/log-tab.store.ts +++ b/src/renderer/components/dock/log-tab.store.ts @@ -86,33 +86,32 @@ export class LogTabStore extends DockTabStore { } private updateTabsData() { - this.data.forEach((value, tabId) => { - this.updatePodsData(tabId); + this.data.forEach((tabData, tabId) => { + const pod = new Pod(tabData.selectedPod); + const pods = podsStore.getPodsByOwnerId(pod.getOwnerRefs()[0]?.uid); + const isSelectedPodInList = pods.find(item => item.getId() == pod.getId()); + const selectedPod = isSelectedPodInList ? pod : pods[0]; + const selectedContainer = isSelectedPodInList ? tabData.selectedContainer : pod.getAllContainers()[0]; + + if (pods.length) { + this.setData(tabId, { + ...tabData, + selectedPod, + selectedContainer, + pods + }); + + this.renameTab(tabId); + } else { + this.closeTab(tabId); + } }); } - private updatePodsData(tabId: string) { - const tabData = this.getData(tabId); - const selectedPod = new Pod(tabData.selectedPod); - const owner = selectedPod.getOwnerRefs()[0]; - const pods = podsStore.getPodsByOwnerId(owner?.uid); - let newSelectedPod = selectedPod; + private renameTab(tabId: string) { + const { selectedPod } = this.getData(tabId); - if (!pods.length) { - this.closeTab(tabId); - - return; - } - - if (!pods.includes(selectedPod)) { - newSelectedPod = pods[0]; - } - - this.setData(tabId, { - ...tabData, - selectedPod: newSelectedPod, - pods - }); + dockStore.renameTab(tabId, `Pod ${selectedPod.metadata.name}`); } private closeTab(tabId: string) {