From c739d7ef41b45d4ade384e5ca1a13456662fa1e2 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 22 Feb 2023 14:27:20 +0200 Subject: [PATCH] switch to `asyncComputed` Signed-off-by: Roman --- package-lock.json | 3 +- ...cs-details-component-enabled.injectable.ts | 2 +- ...rrent-kube-object-in-details.injectable.ts | 38 +++++++++---------- ...custom-resource-detail-item.injectable.tsx | 2 +- ...ter-role-binding-detail-item.injectable.ts | 2 +- .../cluster-role-detail-item.injectable.ts | 2 +- .../config-map-detail-item.injectable.ts | 2 +- .../cron-job-detail-item.injectable.ts | 2 +- ...urce-definitions-detail-item.injectable.ts | 2 +- .../daemon-set-detail-item.injectable.ts | 2 +- .../deployment-detail-item.injectable.ts | 2 +- .../endpoints-detail-item.injectable.ts | 2 +- .../events-detail-item.injectable.ts | 2 +- ...l-pod-autoscaler-detail-item.injectable.ts | 2 +- .../ingress-class-detail-item.injectable.ts | 2 +- .../ingress-detail-item.injectable.ts | 2 +- .../job-detail-item.injectable.ts | 2 +- .../lease-detail-item.injectable.ts | 2 +- .../limit-range-detail-item.injectable.ts | 2 +- .../namespaces-detail-item.injectable.ts | 2 +- .../network-policy-detail-item.injectable.ts | 2 +- .../node-detail-item.injectable.ts | 2 +- ...ent-volume-claim-detail-item.injectable.ts | 2 +- ...ersistent-volume-detail-item.injectable.ts | 2 +- .../pod-detail-item.injectable.ts | 2 +- ...isruption-budget-detail-item.injectable.ts | 2 +- ...-security-policy-detail-item.injectable.ts | 2 +- .../priority-class-detail-item.injectable.ts | 2 +- .../replica-set-detail-item.injectable.ts | 2 +- ...ation-controller-detail-item.injectable.ts | 2 +- .../resource-quota-detail-item.injectable.ts | 2 +- .../role-binding-detail-item.injectable.ts | 2 +- .../role-detail-item.injectable.ts | 2 +- .../runtime-class-detail-item.injectable.ts | 2 +- .../secrets-detail-item.injectable.ts | 2 +- .../service-account-detail-item.injectable.ts | 2 +- .../service-detail-item.injectable.ts | 2 +- .../stateful-set-detail-item.injectable.ts | 2 +- .../storage-class-detail-item.injectable.ts | 2 +- ...l-pod-autoscaler-detail-item.injectable.ts | 2 +- ...ject-detail-item-registrator.injectable.ts | 2 +- .../kube-object-details.tsx | 12 +++--- 42 files changed, 65 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea90dd7e37..9829a7e302 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32254,7 +32254,7 @@ "dependencies": { "@astronautlabs/jsonpath": "^1.1.0", "@hapi/call": "^9.0.1", - "@hapi/subtext": "^7.0.4", + "@hapi/subtext": "^7.1.0", "@k8slens/node-fetch": "^6.4.0-beta.13", "@kubernetes/client-node": "^0.18.1", "@material-ui/styles": "^4.11.5", @@ -34095,6 +34095,7 @@ } }, "packages/infrastructure/webpack": { + "name": "@k8slens/webpack", "version": "0.0.1", "license": "MIT", "dependencies": { 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 a231bfe9ad..0368f1ef41 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 @@ -18,7 +18,7 @@ const metricsDetailsComponentEnabledInjectable = getInjectable({ const currentKubeObjectInDetails = di.inject(currentKubeObjectInDetailsInjectable); return computed(() => { - const kubeObject = currentKubeObjectInDetails.get() as KubeObjectDetailsItem; + const kubeObject = currentKubeObjectInDetails.value.get() as KubeObjectDetailsItem; if (kubeObject) { return kubeObject.kind == kind && metricsEnabled.get(); 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 cb014bca14..85905a063c 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,41 +2,39 @@ * 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 { asyncComputed } from "@ogre-tools/injectable-react"; import kubeDetailsUrlParamInjectable from "../kube-detail-params/kube-details-url.injectable"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; import type { KubeObject } from "../../../common/k8s-api/kube-object"; export type KubeObjectDetailsItem = KubeObject; export type KubeObjectDetailsValue = KubeObjectDetailsItem | Error | undefined; -export type KubeObjectDetailsComputedValue = IComputedValue; const currentKubeObjectInDetailsInjectable = getInjectable({ - id: "current-kube-object-in-details", + id: "current-kube-object-in-details-async-computed", - instantiate(di): KubeObjectDetailsComputedValue { - const kubeObjectUrlParam = di.inject(kubeDetailsUrlParamInjectable); + instantiate: (di) => { + const urlParam = di.inject(kubeDetailsUrlParamInjectable); const apiManager = di.inject(apiManagerInjectable); - const kubeObject = observable.box(); - return computed(() => { - const kubeObjUrlPath = kubeObjectUrlParam.get(); + return asyncComputed({ + betweenUpdates: "show-latest-value", - if (!kubeObjUrlPath) return; // details panel is hidden + async getValueFromObservedPromise() { + const path = urlParam.get(); + const store = apiManager.getStore(path); - const store = apiManager.getStore(kubeObjUrlPath); - const object = store?.getByPath(kubeObjUrlPath); + if (!store) { + return undefined; + } - if (!object) { - store?.loadFromPath(kubeObjUrlPath) - .then(action((obj) => kubeObject.set(obj))) - .catch(action((error) => kubeObject.set(Error(error)))); - } else { - runInAction(() => kubeObject.set(object)); - } - - return kubeObject.get() ?? object; + try { + return store.getByPath(path) ?? await store.loadFromPath(path); + } catch (error) { + return Error(String(error)); + } + }, }); }, }); 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 0fc46f3ce5..e79a254717 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 @@ -19,7 +19,7 @@ const customResourceDetailItemInjectable = getInjectable({ const customResourceDefinitionStore = di.inject(customResourceDefinitionStoreInjectable); const currentKubeObjectInDetails = di.inject(currentKubeObjectInDetailsInjectable); const currentCustomResourceDefinition = computed(() => { - const object = currentKubeObjectInDetails.get(); + const object = currentKubeObjectInDetails.value.get(); if (!object) { return undefined; 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 01df41fb97..7469207931 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 @@ -20,7 +20,7 @@ const clusterRoleBindingDetailItemInjectable = getInjectable({ return { Component: ClusterRoleBindingDetails, - enabled: computed(() => isClusterRoleBinding(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isClusterRoleBinding(kubeObject.value.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 c98155cdff..b872d5cd7e 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 @@ -20,7 +20,7 @@ const clusterRoleDetailItemInjectable = getInjectable({ return { Component: ClusterRoleDetails, - enabled: computed(() => isClusterRole(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isClusterRole(kubeObject.value.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 e6649cbd5d..fe4373f44d 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 @@ -20,7 +20,7 @@ const configMapDetailItemInjectable = getInjectable({ return { Component: ConfigMapDetails, - enabled: computed(() => isConfigMap(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isConfigMap(kubeObject.value.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 0ec23b847b..8e5cbd453f 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 @@ -20,7 +20,7 @@ const cronJobDetailItemInjectable = getInjectable({ return { Component: CronJobDetails, - enabled: computed(() => isCronJob(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isCronJob(kubeObject.value.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 a886302a76..f4340b2b09 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 @@ -20,7 +20,7 @@ const customResourceDefinitionsDetailItemInjectable = getInjectable({ return { Component: CRDDetails, - enabled: computed(() => isCustomResourceDefinition(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isCustomResourceDefinition(kubeObject.value.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 400841da04..6c1cb9ee70 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 @@ -22,7 +22,7 @@ const daemonSetDetailItemInjectable = getInjectable({ return { Component: DaemonSetDetails, - enabled: computed(() => isDaemonSet(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isDaemonSet(kubeObject.value.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 5e28ada6f8..2eddb4b07b 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 @@ -20,7 +20,7 @@ const deploymentDetailItemInjectable = getInjectable({ return { Component: DeploymentDetails, - enabled: computed(() => isDeployment(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isDeployment(kubeObject.value.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 316d8cbecc..df905f3915 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 @@ -20,7 +20,7 @@ const endpointsDetailItemInjectable = getInjectable({ return { Component: EndpointsDetails, - enabled: computed(() => isEndpoint(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isEndpoint(kubeObject.value.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 c01311ad84..64284855c0 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 @@ -20,7 +20,7 @@ const eventsDetailItemInjectable = getInjectable({ return { Component: EventDetails, - enabled: computed(() => isEvent(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isEvent(kubeObject.value.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 cdebf49fd8..719c888df2 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 @@ -20,7 +20,7 @@ const horizontalPodAutoscalerDetailItemInjectable = getInjectable({ return { Component: HpaDetails, - enabled: computed(() => isHorizontalPodAutoscaler(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isHorizontalPodAutoscaler(kubeObject.value.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 baa20666d8..549e89272f 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 @@ -20,7 +20,7 @@ const ingressClassDetailItemInjectable = getInjectable({ return { Component: IngressClassDetails, - enabled: computed(() => isIngressClass(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isIngressClass(kubeObject.value.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 06fe022c85..71d5b142bf 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 @@ -20,7 +20,7 @@ const ingressDetailItemInjectable = getInjectable({ return { Component: IngressDetails, - enabled: computed(() => isIngress(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isIngress(kubeObject.value.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 7d87637b3d..07932d13a3 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 @@ -20,7 +20,7 @@ const jobDetailItemInjectable = getInjectable({ return { Component: JobDetails, - enabled: computed(() => isJob(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isJob(kubeObject.value.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 3bcacbae13..6588bb3cf2 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 @@ -20,7 +20,7 @@ const leaseDetailItemInjectable = getInjectable({ return { Component: LeaseDetails, - enabled: computed(() => isLease(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isLease(kubeObject.value.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 f792141c2e..705c662b52 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 @@ -20,7 +20,7 @@ const limitRangeDetailItemInjectable = getInjectable({ return { Component: LimitRangeDetails, - enabled: computed(() => isLimitRange(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isLimitRange(kubeObject.value.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 f6d54a5005..b0bb571b3a 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 @@ -22,7 +22,7 @@ const namespacesDetailItemInjectable = getInjectable({ return { Component: NamespaceDetails, - enabled: computed(() => isNamespace(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isNamespace(kubeObject.value.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 ad277d45c6..eb6bf77000 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 @@ -20,7 +20,7 @@ const networkPolicyDetailItemInjectable = getInjectable({ return { Component: NetworkPolicyDetails, - enabled: computed(() => isNetworkPolicy(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isNetworkPolicy(kubeObject.value.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 9dfcd7c7ce..2888526b88 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 @@ -20,7 +20,7 @@ const nodeDetailItemInjectable = getInjectable({ return { Component: NodeDetails, - enabled: computed(() => isNode(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isNode(kubeObject.value.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 3a4721d8ff..e6c1171c65 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 @@ -20,7 +20,7 @@ const persistentVolumeClaimDetailItemInjectable = getInjectable({ return { Component: PersistentVolumeClaimDetails, - enabled: computed(() => isPersistentVolumeClaim(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isPersistentVolumeClaim(kubeObject.value.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 127a543fbc..7b577cf60e 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 @@ -20,7 +20,7 @@ const persistentVolumeDetailItemInjectable = getInjectable({ return { Component: PersistentVolumeDetails, - enabled: computed(() => isPersistentVolume(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isPersistentVolume(kubeObject.value.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 ef540274ff..6382b7becb 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 @@ -20,7 +20,7 @@ const podDetailItemInjectable = getInjectable({ return { Component: PodDetails, - enabled: computed(() => isPod(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isPod(kubeObject.value.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 abe2faaa89..8029a5805a 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.get() instanceof PodDisruptionBudget), + enabled: computed(() => kubeObject.value.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 52969e0a4c..21abee83a5 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 @@ -20,7 +20,7 @@ const podSecurityPolicyDetailItemInjectable = getInjectable({ return { Component: PodSecurityPolicyDetails, - enabled: computed(() => isPodSecurityPolicy(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isPodSecurityPolicy(kubeObject.value.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 9d1b6250f3..e1f2a335be 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 @@ -20,7 +20,7 @@ const priorityClassDetailItemInjectable = getInjectable({ return { Component: PriorityClassesDetails, - enabled: computed(() => isPriorityClass(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isPriorityClass(kubeObject.value.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 f0fded25cb..f08da86e9c 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 @@ -20,7 +20,7 @@ const replicaSetDetailItemInjectable = getInjectable({ return { Component: ReplicaSetDetails, - enabled: computed(() => isReplicaSet(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isReplicaSet(kubeObject.value.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 940833614a..9e8ed9b0e5 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 @@ -22,7 +22,7 @@ const replicationControllerDetailItemInjectable = getInjectable({ return { Component: ReplicationControllerDetails, - enabled: computed(() => isReplicationController(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isReplicationController(kubeObject.value.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 964f001bca..5fc226aa29 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 @@ -20,7 +20,7 @@ const resourceQuotaDetailItemInjectable = getInjectable({ return { Component: ResourceQuotaDetails, - enabled: computed(() => isResourceQuota(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isResourceQuota(kubeObject.value.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 229ce6151f..dd1a8d5234 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 @@ -20,7 +20,7 @@ const roleBindingDetailItemInjectable = getInjectable({ return { Component: RoleBindingDetails, - enabled: computed(() => isRoleBinding(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isRoleBinding(kubeObject.value.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 6242490013..4718e279aa 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 @@ -20,7 +20,7 @@ const roleDetailItemInjectable = getInjectable({ return { Component: RoleDetails, - enabled: computed(() => isRole(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isRole(kubeObject.value.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 a2cdb5de67..232d47bb99 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 @@ -20,7 +20,7 @@ const runtimeClassDetailItemInjectable = getInjectable({ return { Component: RuntimeClassesDetails, - enabled: computed(() => isRuntimeClass(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isRuntimeClass(kubeObject.value.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 e17a5582e5..75e0b094cb 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 @@ -20,7 +20,7 @@ const secretsDetailItemInjectable = getInjectable({ return { Component: SecretDetails, - enabled: computed(() => isSecret(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isSecret(kubeObject.value.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 c6cf07d0a9..9d19333b2f 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 @@ -20,7 +20,7 @@ const serviceAccountDetailItemInjectable = getInjectable({ return { Component: ServiceAccountsDetails, - enabled: computed(() => isServiceAccount(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isServiceAccount(kubeObject.value.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 c1707acae3..b484b0d751 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 @@ -20,7 +20,7 @@ const serviceDetailItemInjectable = getInjectable({ return { Component: ServiceDetails, - enabled: computed(() => isService(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isService(kubeObject.value.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 b9f7506fd4..c1a822a92e 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 @@ -20,7 +20,7 @@ const statefulSetDetailItemInjectable = getInjectable({ return { Component: StatefulSetDetails, - enabled: computed(() => isStatefulSet(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isStatefulSet(kubeObject.value.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 9d3007c8ac..e671764ead 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 @@ -20,7 +20,7 @@ const storageClassDetailItemInjectable = getInjectable({ return { Component: StorageClassDetails, - enabled: computed(() => isStorageClass(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isStorageClass(kubeObject.value.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 29cdda6674..59e3cea67a 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 @@ -20,7 +20,7 @@ const verticalPodAutoscalerDetailItemInjectable = getInjectable({ return { Component: VpaDetails, - enabled: computed(() => isVerticalPodAutoscaler(kubeObject.get() as KubeObjectDetailsItem)), + enabled: computed(() => isVerticalPodAutoscaler(kubeObject.value.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 5528f86c6f..962546a32e 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 @@ -58,7 +58,7 @@ const kubeObjectDetailItemRegistratorInjectable = getInjectable({ return false; } - if (!isRelevantKubeObject(kubeObject.get() as KubeObjectDetailsItem)) { + if (!isRelevantKubeObject(kubeObject.value.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 3c531c43b3..4bcbf29253 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 @@ -13,13 +13,13 @@ import { KubeObject } from "../../../common/k8s-api/kube-object"; import { Spinner } from "../spinner"; import { KubeObjectMenu } from "../kube-object-menu"; import type { HideDetails } from "../kube-detail-params/hide-details.injectable"; -import { withInjectables } from "@ogre-tools/injectable-react"; import hideDetailsInjectable from "../kube-detail-params/hide-details.injectable"; +import { type IAsyncComputed, withInjectables } from "@ogre-tools/injectable-react"; import kubeObjectDetailItemsInjectable from "./kube-object-detail-items/kube-object-detail-items.injectable"; import type { KubeObjectDetailsItem, - KubeObjectDetailsComputedValue, + KubeObjectDetailsValue, } from "./current-kube-object-in-details.injectable"; import currentKubeObjectInDetailsInjectable from "./current-kube-object-in-details.injectable"; @@ -30,7 +30,7 @@ export interface KubeObjectDetailsProps { interface Dependencies { detailComponents: IComputedValue; - kubeObjectDetails: KubeObjectDetailsComputedValue; + kubeObjectDetails: IAsyncComputed; hideDetails: HideDetails; } @@ -41,9 +41,9 @@ const NonInjectedKubeObjectDetails = observer((props: Dependencies) => { kubeObjectDetails, } = props; - const kubeObject = kubeObjectDetails.get(); + const kubeObject = kubeObjectDetails.value.get(); const isError = kubeObject instanceof Error; - const isLoading = !kubeObject && !isError; + const isLoading = kubeObjectDetails.pending.get(); const title = (kubeObject instanceof KubeObject) ? `${kubeObject.kind}: ${kubeObject.getName()}` @@ -62,7 +62,7 @@ const NonInjectedKubeObjectDetails = observer((props: Dependencies) => { {isError ? (
- Resource loading has failed: + Resource loading has failed: {" "} {String(kubeObject)}