diff --git a/packages/core/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts b/packages/core/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts index e480eadc78..a231bfe9ad 100644 --- a/packages/core/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts +++ b/packages/core/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts @@ -5,6 +5,9 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { computed } from "mobx"; import type { ClusterMetricsResourceType } from "../../../../common/cluster-types"; +import type { + KubeObjectDetailsItem, +} from "../../../components/kube-object-details/current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../../components/kube-object-details/current-kube-object-in-details.injectable"; import enabledMetricsInjectable from "./metrics-enabled.injectable"; @@ -15,13 +18,13 @@ const metricsDetailsComponentEnabledInjectable = getInjectable({ const currentKubeObjectInDetails = di.inject(currentKubeObjectInDetailsInjectable); return computed(() => { - const current = currentKubeObjectInDetails.value.get(); + const kubeObject = currentKubeObjectInDetails.get() as KubeObjectDetailsItem; - if (!current?.object) { - return false; + if (kubeObject) { + return kubeObject.kind == kind && metricsEnabled.get(); } - return current.object.kind == kind && metricsEnabled.get(); + return false; }); }, lifecycle: lifecycleEnum.keyedSingleton({ diff --git a/packages/core/src/renderer/components/kube-object-details/current-kube-object-in-details.injectable.ts b/packages/core/src/renderer/components/kube-object-details/current-kube-object-in-details.injectable.ts index 3848c57942..cb014bca14 100644 --- a/packages/core/src/renderer/components/kube-object-details/current-kube-object-in-details.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/current-kube-object-in-details.injectable.ts @@ -2,59 +2,25 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ +import { action, computed, type IComputedValue, observable, runInAction } from "mobx"; import { getInjectable } from "@ogre-tools/injectable"; import kubeDetailsUrlParamInjectable from "../kube-detail-params/kube-details-url.injectable"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; -import { asyncComputed } from "@ogre-tools/injectable-react"; import type { KubeObject } from "../../../common/k8s-api/kube-object"; -import type { IComputedValue } from "mobx"; -import { action, computed, observable, runInAction } from "mobx"; -export type CurrentKubeObject = - | undefined - | { object: KubeObject; error?: undefined } - | { object?: undefined; error: string }; +export type KubeObjectDetailsItem = KubeObject; +export type KubeObjectDetailsValue = KubeObjectDetailsItem | Error | undefined; +export type KubeObjectDetailsComputedValue = IComputedValue; const currentKubeObjectInDetailsInjectable = getInjectable({ id: "current-kube-object-in-details", - instantiate: (di) => { - const urlParam = di.inject(kubeDetailsUrlParamInjectable); - const apiManager = di.inject(apiManagerInjectable); - - return asyncComputed({ - getValueFromObservedPromise: async (): Promise => { - const path = urlParam.get(); - const store = apiManager.getStore(path); - - if (!store) { - return undefined; - } - - try { - const object = await store.loadFromPath(path); - - return { object }; - } catch (error) { - return { error: String(error) }; - } - }, - }); - }, -}); - -export type KubeObjectDetailsItemValue = KubeObject | Error | undefined; -export type KubeObjectDetailsItemComputed = IComputedValue; - -export const currentKubeObjectInDetailsInjectable2 = getInjectable({ - id: "current-kube-object-in-details-2", - - instantiate(di): KubeObjectDetailsItemComputed { + instantiate(di): KubeObjectDetailsComputedValue { const kubeObjectUrlParam = di.inject(kubeDetailsUrlParamInjectable); const apiManager = di.inject(apiManagerInjectable); - const kubeObject = observable.box(); + const kubeObject = observable.box(); - return computed(() => { + return computed(() => { const kubeObjUrlPath = kubeObjectUrlParam.get(); if (!kubeObjUrlPath) return; // details panel is hidden diff --git a/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx b/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx index 62b469d5de..0fc46f3ce5 100644 --- a/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx +++ b/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx @@ -7,6 +7,9 @@ import { computed } from "mobx"; import React from "react"; import { CustomResourceDetails } from "../+custom-resources"; import customResourceDefinitionStoreInjectable from "../+custom-resources/definition.store.injectable"; +import type { + KubeObjectDetailsItem, +} from "./current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "./current-kube-object-in-details.injectable"; import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-items/kube-object-detail-item-injection-token"; @@ -16,13 +19,13 @@ const customResourceDetailItemInjectable = getInjectable({ const customResourceDefinitionStore = di.inject(customResourceDefinitionStoreInjectable); const currentKubeObjectInDetails = di.inject(currentKubeObjectInDetailsInjectable); const currentCustomResourceDefinition = computed(() => { - const { object } = currentKubeObjectInDetails.value.get() ?? {}; + const object = currentKubeObjectInDetails.get(); if (!object) { return undefined; } - return customResourceDefinitionStore.getByObject(object); + return customResourceDefinitionStore.getByObject(object as KubeObjectDetailsItem); }); return { diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-binding-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-binding-detail-item.injectable.ts index eba49112c1..01df41fb97 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-binding-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-binding-detail-item.injectable.ts @@ -6,6 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { ClusterRoleBindingDetails } from "../../../+user-management/+cluster-role-bindings"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; @@ -17,7 +20,7 @@ const clusterRoleBindingDetailItemInjectable = getInjectable({ return { Component: ClusterRoleBindingDetails, - enabled: computed(() => isClusterRoleBinding(kubeObject.value.get()?.object)), + enabled: computed(() => isClusterRoleBinding(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-detail-item.injectable.ts index dff631a1d9..c98155cdff 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-detail-item.injectable.ts @@ -6,6 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { ClusterRoleDetails } from "../../../+user-management/+cluster-roles"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; @@ -17,7 +20,7 @@ const clusterRoleDetailItemInjectable = getInjectable({ return { Component: ClusterRoleDetails, - enabled: computed(() => isClusterRole(kubeObject.value.get()?.object)), + enabled: computed(() => isClusterRole(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/config-map-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/config-map-detail-item.injectable.ts index 111aa1f3a1..e6649cbd5d 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/config-map-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/config-map-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { ConfigMapDetails } from "../../../+config-maps"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const configMapDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const configMapDetailItemInjectable = getInjectable({ return { Component: ConfigMapDetails, - enabled: computed(() => isConfigMap(kubeObject.value.get()?.object)), + enabled: computed(() => isConfigMap(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cron-job-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cron-job-detail-item.injectable.ts index 350dafcb64..0ec23b847b 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cron-job-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cron-job-detail-item.injectable.ts @@ -6,6 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { CronJobDetails } from "../../../+workloads-cronjobs"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; @@ -17,7 +20,7 @@ const cronJobDetailItemInjectable = getInjectable({ return { Component: CronJobDetails, - enabled: computed(() => isCronJob(kubeObject.value.get()?.object)), + enabled: computed(() => isCronJob(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts index 432978cc13..a886302a76 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { CRDDetails } from "../../../+custom-resources"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const customResourceDefinitionsDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const customResourceDefinitionsDetailItemInjectable = getInjectable({ return { Component: CRDDetails, - enabled: computed(() => isCustomResourceDefinition(kubeObject.value.get()?.object)), + enabled: computed(() => isCustomResourceDefinition(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/daemon-set-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/daemon-set-detail-item.injectable.ts index 4845dd3a46..400841da04 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/daemon-set-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/daemon-set-detail-item.injectable.ts @@ -6,7 +6,12 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { DaemonSetDetails } from "../../../+workloads-daemonsets"; -import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import { + kubeObjectMatchesToKindAndApiVersion, +} from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const daemonSetDetailItemInjectable = getInjectable({ @@ -17,7 +22,7 @@ const daemonSetDetailItemInjectable = getInjectable({ return { Component: DaemonSetDetails, - enabled: computed(() => isDaemonSet(kubeObject.value.get()?.object)), + enabled: computed(() => isDaemonSet(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/deployment-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/deployment-detail-item.injectable.ts index 8100b27c9e..5e28ada6f8 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/deployment-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/deployment-detail-item.injectable.ts @@ -6,6 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { DeploymentDetails } from "../../../+workloads-deployments"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; @@ -17,7 +20,7 @@ const deploymentDetailItemInjectable = getInjectable({ return { Component: DeploymentDetails, - enabled: computed(() => isDeployment(kubeObject.value.get()?.object)), + enabled: computed(() => isDeployment(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/endpoints-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/endpoints-detail-item.injectable.ts index be7a3de219..316d8cbecc 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/endpoints-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/endpoints-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { EndpointsDetails } from "../../../+network-endpoints"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const endpointsDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const endpointsDetailItemInjectable = getInjectable({ return { Component: EndpointsDetails, - enabled: computed(() => isEndpoint(kubeObject.value.get()?.object)), + enabled: computed(() => isEndpoint(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/events-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/events-detail-item.injectable.ts index fbb792ae38..c01311ad84 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/events-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/events-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { EventDetails } from "../../../+events"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const eventsDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const eventsDetailItemInjectable = getInjectable({ return { Component: EventDetails, - enabled: computed(() => isEvent(kubeObject.value.get()?.object)), + enabled: computed(() => isEvent(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/horizontal-pod-autoscaler-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/horizontal-pod-autoscaler-detail-item.injectable.ts index 8fe4b7da38..cdebf49fd8 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/horizontal-pod-autoscaler-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/horizontal-pod-autoscaler-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { HpaDetails } from "../../../+config-horizontal-pod-autoscalers"; import { computed } from "mobx"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const horizontalPodAutoscalerDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const horizontalPodAutoscalerDetailItemInjectable = getInjectable({ return { Component: HpaDetails, - enabled: computed(() => isHorizontalPodAutoscaler(kubeObject.value.get()?.object)), + enabled: computed(() => isHorizontalPodAutoscaler(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-class-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-class-detail-item.injectable.ts index 4118c352e1..baa20666d8 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-class-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-class-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { IngressClassDetails } from "../../../+network-ingresses"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const ingressClassDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const ingressClassDetailItemInjectable = getInjectable({ return { Component: IngressClassDetails, - enabled: computed(() => isIngressClass(kubeObject.value.get()?.object)), + enabled: computed(() => isIngressClass(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.ts index 77fa5ec86b..06fe022c85 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { IngressDetails } from "../../../+network-ingresses"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const ingressDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const ingressDetailItemInjectable = getInjectable({ return { Component: IngressDetails, - enabled: computed(() => isIngress(kubeObject.value.get()?.object)), + enabled: computed(() => isIngress(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/job-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/job-detail-item.injectable.ts index 1d5d7642ca..7d87637b3d 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/job-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/job-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { JobDetails } from "../../../+workloads-jobs"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const jobDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const jobDetailItemInjectable = getInjectable({ return { Component: JobDetails, - enabled: computed(() => isJob(kubeObject.value.get()?.object)), + enabled: computed(() => isJob(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/lease-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/lease-detail-item.injectable.ts index 2bb7153028..3bcacbae13 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/lease-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/lease-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { LeaseDetails } from "../../../+config-leases"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const leaseDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const leaseDetailItemInjectable = getInjectable({ return { Component: LeaseDetails, - enabled: computed(() => isLease(kubeObject.value.get()?.object)), + enabled: computed(() => isLease(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/limit-range-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/limit-range-detail-item.injectable.ts index f264ba32cf..f792141c2e 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/limit-range-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/limit-range-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { LimitRangeDetails } from "../../../+config-limit-ranges"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const limitRangeDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const limitRangeDetailItemInjectable = getInjectable({ return { Component: LimitRangeDetails, - enabled: computed(() => isLimitRange(kubeObject.value.get()?.object)), + enabled: computed(() => isLimitRange(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/namespaces-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/namespaces-detail-item.injectable.ts index b9ab51ad00..f6d54a5005 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/namespaces-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/namespaces-detail-item.injectable.ts @@ -9,20 +9,20 @@ import { NamespaceDetails } from "../../../+namespaces"; import { kubeObjectMatchesToKindAndApiVersion, } from "../kube-object-matches-to-kind-and-api-version"; -import { - currentKubeObjectInDetailsInjectable2, +import type { + KubeObjectDetailsItem, } from "../../current-kube-object-in-details.injectable"; -import type { KubeObject } from "../../../../../common/k8s-api/kube-object"; +import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const namespacesDetailItemInjectable = getInjectable({ id: "namespaces-detail-item", instantiate: (di) => { - const kubeObject = di.inject(currentKubeObjectInDetailsInjectable2); + const kubeObject = di.inject(currentKubeObjectInDetailsInjectable); return { Component: NamespaceDetails, - enabled: computed(() => isNamespace(kubeObject.get() as KubeObject)), + enabled: computed(() => isNamespace(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/network-policy-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/network-policy-detail-item.injectable.ts index 53b6d57355..ad277d45c6 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/network-policy-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/network-policy-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { NetworkPolicyDetails } from "../../../+network-policies"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const networkPolicyDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const networkPolicyDetailItemInjectable = getInjectable({ return { Component: NetworkPolicyDetails, - enabled: computed(() => isNetworkPolicy(kubeObject.value.get()?.object)), + enabled: computed(() => isNetworkPolicy(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/node-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/node-detail-item.injectable.ts index 4ed6f66d7e..9dfcd7c7ce 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/node-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/node-detail-item.injectable.ts @@ -6,6 +6,9 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; import { NodeDetails } from "../../../+nodes/details"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; @@ -17,7 +20,7 @@ const nodeDetailItemInjectable = getInjectable({ return { Component: NodeDetails, - enabled: computed(() => isNode(kubeObject.value.get()?.object)), + enabled: computed(() => isNode(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.ts index 18c489a6d9..3a4721d8ff 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { PersistentVolumeClaimDetails } from "../../../+storage-volume-claims"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const persistentVolumeClaimDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const persistentVolumeClaimDetailItemInjectable = getInjectable({ return { Component: PersistentVolumeClaimDetails, - enabled: computed(() => isPersistentVolumeClaim(kubeObject.value.get()?.object)), + enabled: computed(() => isPersistentVolumeClaim(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-detail-item.injectable.ts index 536380a9a0..127a543fbc 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { PersistentVolumeDetails } from "../../../+storage-volumes"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const persistentVolumeDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const persistentVolumeDetailItemInjectable = getInjectable({ return { Component: PersistentVolumeDetails, - enabled: computed(() => isPersistentVolume(kubeObject.value.get()?.object)), + enabled: computed(() => isPersistentVolume(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.ts index c75f35217d..ef540274ff 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { PodDetails } from "../../../+workloads-pods"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const podDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const podDetailItemInjectable = getInjectable({ return { Component: PodDetails, - enabled: computed(() => isPod(kubeObject.value.get()?.object)), + enabled: computed(() => isPod(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-disruption-budget-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-disruption-budget-detail-item.injectable.ts index c6d9435f4b..abe2faaa89 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-disruption-budget-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-disruption-budget-detail-item.injectable.ts @@ -17,7 +17,7 @@ const podDisruptionBudgetDetailItemInjectable = getInjectable({ return { Component: PodDisruptionBudgetDetails, - enabled: computed(() => kubeObject.value.get()?.object instanceof PodDisruptionBudget), + enabled: computed(() => kubeObject.get() instanceof PodDisruptionBudget), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-security-policy-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-security-policy-detail-item.injectable.ts index 54cd7691c9..52969e0a4c 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-security-policy-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-security-policy-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { PodSecurityPolicyDetails } from "../../../+pod-security-policies"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const podSecurityPolicyDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const podSecurityPolicyDetailItemInjectable = getInjectable({ return { Component: PodSecurityPolicyDetails, - enabled: computed(() => isPodSecurityPolicy(kubeObject.value.get()?.object)), + enabled: computed(() => isPodSecurityPolicy(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/priority-class-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/priority-class-detail-item.injectable.ts index 803c0655b6..9d1b6250f3 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/priority-class-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/priority-class-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { PriorityClassesDetails } from "../../../+config-priority-classes"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const priorityClassDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const priorityClassDetailItemInjectable = getInjectable({ return { Component: PriorityClassesDetails, - enabled: computed(() => isPriorityClass(kubeObject.value.get()?.object)), + enabled: computed(() => isPriorityClass(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replica-set-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replica-set-detail-item.injectable.ts index e10d57fb11..f0fded25cb 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replica-set-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replica-set-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { ReplicaSetDetails } from "../../../+workloads-replicasets"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const replicaSetDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const replicaSetDetailItemInjectable = getInjectable({ return { Component: ReplicaSetDetails, - enabled: computed(() => isReplicaSet(kubeObject.value.get()?.object)), + enabled: computed(() => isReplicaSet(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts index 71e19acff1..940833614a 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts @@ -8,21 +8,21 @@ import { computed } from "mobx"; import { kubeObjectMatchesToKindAndApiVersion, } from "../kube-object-matches-to-kind-and-api-version"; -import { - currentKubeObjectInDetailsInjectable2, +import type { + KubeObjectDetailsItem, } from "../../current-kube-object-in-details.injectable"; +import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; import { ReplicationControllerDetails } from "../../../+workloads-replicationcontrollers"; -import type { KubeObject } from "../../../../../common/k8s-api/kube-object"; const replicationControllerDetailItemInjectable = getInjectable({ id: "replication-controller-detail-item", instantiate(di) { - const kubeObject = di.inject(currentKubeObjectInDetailsInjectable2); + const kubeObject = di.inject(currentKubeObjectInDetailsInjectable); return { Component: ReplicationControllerDetails, - enabled: computed(() => isReplicationController(kubeObject.get() as KubeObject)), + enabled: computed(() => isReplicationController(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/resource-quota-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/resource-quota-detail-item.injectable.ts index eae2f0c48f..964f001bca 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/resource-quota-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/resource-quota-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { ResourceQuotaDetails } from "../../../+config-resource-quotas"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const resourceQuotaDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const resourceQuotaDetailItemInjectable = getInjectable({ return { Component: ResourceQuotaDetails, - enabled: computed(() => isResourceQuota(kubeObject.value.get()?.object)), + enabled: computed(() => isResourceQuota(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-binding-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-binding-detail-item.injectable.ts index ae83190b61..229ce6151f 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-binding-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-binding-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { RoleBindingDetails } from "../../../+user-management/+role-bindings"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const roleBindingDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const roleBindingDetailItemInjectable = getInjectable({ return { Component: RoleBindingDetails, - enabled: computed(() => isRoleBinding(kubeObject.value.get()?.object)), + enabled: computed(() => isRoleBinding(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-detail-item.injectable.ts index 77781640c5..6242490013 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { RoleDetails } from "../../../+user-management/+roles"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const roleDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const roleDetailItemInjectable = getInjectable({ return { Component: RoleDetails, - enabled: computed(() => isRole(kubeObject.value.get()?.object)), + enabled: computed(() => isRole(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/runtime-class-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/runtime-class-detail-item.injectable.ts index a06949094b..a2cdb5de67 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/runtime-class-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/runtime-class-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { RuntimeClassesDetails } from "../../../+config-runtime-classes"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const runtimeClassDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const runtimeClassDetailItemInjectable = getInjectable({ return { Component: RuntimeClassesDetails, - enabled: computed(() => isRuntimeClass(kubeObject.value.get()?.object)), + enabled: computed(() => isRuntimeClass(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/secrets-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/secrets-detail-item.injectable.ts index 5645b40f0b..e17a5582e5 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/secrets-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/secrets-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { SecretDetails } from "../../../+config-secrets"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const secretsDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const secretsDetailItemInjectable = getInjectable({ return { Component: SecretDetails, - enabled: computed(() => isSecret(kubeObject.value.get()?.object)), + enabled: computed(() => isSecret(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-account-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-account-detail-item.injectable.ts index 77aa073c8f..c6cf07d0a9 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-account-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-account-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { ServiceAccountsDetails } from "../../../+user-management/+service-accounts"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const serviceAccountDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const serviceAccountDetailItemInjectable = getInjectable({ return { Component: ServiceAccountsDetails, - enabled: computed(() => isServiceAccount(kubeObject.value.get()?.object)), + enabled: computed(() => isServiceAccount(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-detail-item.injectable.ts index 108da710a9..c1707acae3 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { ServiceDetails } from "../../../+network-services"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const serviceDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const serviceDetailItemInjectable = getInjectable({ return { Component: ServiceDetails, - enabled: computed(() => isService(kubeObject.value.get()?.object)), + enabled: computed(() => isService(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/stateful-set-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/stateful-set-detail-item.injectable.ts index 35970e5697..b9f7506fd4 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/stateful-set-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/stateful-set-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { StatefulSetDetails } from "../../../+workloads-statefulsets"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const statefulSetDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const statefulSetDetailItemInjectable = getInjectable({ return { Component: StatefulSetDetails, - enabled: computed(() => isStatefulSet(kubeObject.value.get()?.object)), + enabled: computed(() => isStatefulSet(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/storage-class-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/storage-class-detail-item.injectable.ts index bc0c71ec5b..9d3007c8ac 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/storage-class-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/storage-class-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { computed } from "mobx"; import { StorageClassDetails } from "../../../+storage-classes"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const storageClassDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const storageClassDetailItemInjectable = getInjectable({ return { Component: StorageClassDetails, - enabled: computed(() => isStorageClass(kubeObject.value.get()?.object)), + enabled: computed(() => isStorageClass(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/vertical-pod-autoscaler-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/vertical-pod-autoscaler-detail-item.injectable.ts index 3612fa2179..29cdda6674 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/vertical-pod-autoscaler-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/vertical-pod-autoscaler-detail-item.injectable.ts @@ -7,6 +7,9 @@ import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-i import { VpaDetails } from "../../../+config-vertical-pod-autoscalers"; import { computed } from "mobx"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; +import type { + KubeObjectDetailsItem, +} from "../../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; const verticalPodAutoscalerDetailItemInjectable = getInjectable({ @@ -17,7 +20,7 @@ const verticalPodAutoscalerDetailItemInjectable = getInjectable({ return { Component: VpaDetails, - enabled: computed(() => isVerticalPodAutoscaler(kubeObject.value.get()?.object)), + enabled: computed(() => isVerticalPodAutoscaler(kubeObject.get() as KubeObjectDetailsItem)), orderNumber: 10, }; }, diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts index 45b37d2ca1..5528f86c6f 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts @@ -9,6 +9,9 @@ import type { LensRendererExtension } from "../../../../extensions/lens-renderer import extensionShouldBeEnabledForClusterFrameInjectable from "../../../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable"; import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-item-injection-token"; import { extensionRegistratorInjectionToken } from "../../../../extensions/extension-loader/extension-registrator-injection-token"; +import type { + KubeObjectDetailsItem, +} from "../current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "../current-kube-object-in-details.injectable"; import { kubeObjectMatchesToKindAndApiVersion } from "./kube-object-matches-to-kind-and-api-version"; @@ -55,7 +58,7 @@ const kubeObjectDetailItemRegistratorInjectable = getInjectable({ return false; } - if (!isRelevantKubeObject(kubeObject.value.get()?.object)) { + if (!isRelevantKubeObject(kubeObject.get() as KubeObjectDetailsItem)) { return false; } diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx b/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx index 02b5bf2f83..3c531c43b3 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-details.tsx @@ -18,11 +18,10 @@ import hideDetailsInjectable from "../kube-detail-params/hide-details.injectable import kubeObjectDetailItemsInjectable from "./kube-object-detail-items/kube-object-detail-items.injectable"; import type { - KubeObjectDetailsItemComputed, -} from "./current-kube-object-in-details.injectable"; -import { - currentKubeObjectInDetailsInjectable2, + KubeObjectDetailsItem, + KubeObjectDetailsComputedValue, } from "./current-kube-object-in-details.injectable"; +import currentKubeObjectInDetailsInjectable from "./current-kube-object-in-details.injectable"; export interface KubeObjectDetailsProps { className?: string; @@ -31,7 +30,7 @@ export interface KubeObjectDetailsProps { interface Dependencies { detailComponents: IComputedValue; - kubeObject: KubeObjectDetailsItemComputed; + kubeObjectDetails: KubeObjectDetailsComputedValue; hideDetails: HideDetails; } @@ -39,30 +38,38 @@ const NonInjectedKubeObjectDetails = observer((props: Dependencies) => { const { detailComponents, hideDetails, - kubeObject, + kubeObjectDetails, } = props; - const object = kubeObject.get(); + const kubeObject = kubeObjectDetails.get(); + const isError = kubeObject instanceof Error; + const isLoading = !kubeObject && !isError; + + const title = (kubeObject instanceof KubeObject) + ? `${kubeObject.kind}: ${kubeObject.getName()}` + : "KubeResourceDetails"; return ( } + open={!!kubeObject} + title={title} + toolbar={kubeObject && + } onClose={hideDetails} > - {!object && } - {object instanceof Error && ( + {isLoading && } + + {isError ? (
- Resource loading has failed: - {object} + Resource loading has failed: + {" "} + {String(kubeObject)}
+ ) : ( + kubeObject && detailComponents.get() + .map((Component, index) => ) )} - {object && detailComponents.get() - .map((Component, index) => )}
); }); @@ -72,6 +79,6 @@ export const KubeObjectDetails = withInjectables(NonInjectedKubeOb ...props, hideDetails: di.inject(hideDetailsInjectable), detailComponents: di.inject(kubeObjectDetailItemsInjectable), - kubeObject: di.inject(currentKubeObjectInDetailsInjectable2), + kubeObjectDetails: di.inject(currentKubeObjectInDetailsInjectable), }), });