diff --git a/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts b/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts new file mode 100644 index 0000000000..e480eadc78 --- /dev/null +++ b/src/renderer/api/catalog/entity/metrics-details-component-enabled.injectable.ts @@ -0,0 +1,32 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; +import { computed } from "mobx"; +import type { ClusterMetricsResourceType } from "../../../../common/cluster-types"; +import currentKubeObjectInDetailsInjectable from "../../../components/kube-object-details/current-kube-object-in-details.injectable"; +import enabledMetricsInjectable from "./metrics-enabled.injectable"; + +const metricsDetailsComponentEnabledInjectable = getInjectable({ + id: "metrics-details-component-enabled", + instantiate: (di, kind) => { + const metricsEnabled = di.inject(enabledMetricsInjectable, kind); + const currentKubeObjectInDetails = di.inject(currentKubeObjectInDetailsInjectable); + + return computed(() => { + const current = currentKubeObjectInDetails.value.get(); + + if (!current?.object) { + return false; + } + + return current.object.kind == kind && metricsEnabled.get(); + }); + }, + lifecycle: lifecycleEnum.keyedSingleton({ + getInstanceKey: (di, kind: ClusterMetricsResourceType) => kind, + }), +}); + +export default metricsDetailsComponentEnabledInjectable; diff --git a/src/renderer/api/catalog/entity/metrics-enabled.injectable.ts b/src/renderer/api/catalog/entity/metrics-enabled.injectable.ts index 9f9fee93ee..d267132fcd 100644 --- a/src/renderer/api/catalog/entity/metrics-enabled.injectable.ts +++ b/src/renderer/api/catalog/entity/metrics-enabled.injectable.ts @@ -12,7 +12,7 @@ const enabledMetricsInjectable = getInjectable({ instantiate: (di, kind) => { const getActiveClusterEntity = di.inject(getActiveClusterEntityInjectable); - return computed(() => !getActiveClusterEntity()?.isMetricsHidden(kind)); + return computed(() => !getActiveClusterEntity()?.isMetricHidden(kind)); }, lifecycle: lifecycleEnum.keyedSingleton({ getInstanceKey: (di, kind: ClusterMetricsResourceType) => kind,