/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { GetClusterById } from "../../../../common/cluster-store/get-by-id.injectable"; import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable"; import { ClusterMetricsSetting } from "../../cluster-settings/metrics-setting"; import { ClusterPrometheusSetting } from "../../cluster-settings/prometheus-setting"; import { ShowMetricsSetting } from "../../cluster-settings/show-metrics"; import type { EntitySettingViewProps } from "../extension-registrator.injectable"; import { entitySettingInjectionToken } from "../token"; interface Dependencies { getClusterById: GetClusterById; } function NonInjectedMetricsKubernetesClusterSettings({ entity, getClusterById }: EntitySettingViewProps & Dependencies) { const cluster = getClusterById(entity.getId()); if (!cluster) { return null; } return (

); } const MetricsKubernetesClusterSettings = withInjectables(NonInjectedMetricsKubernetesClusterSettings, { getProps: (di, props) => ({ ...props, getClusterById: di.inject(getClusterByIdInjectable), }), }); const metricsKubernetesClusterEntitySettingsInjectable = getInjectable({ id: "metrics-kubernetes-cluster-entity-settings", instantiate: () => ({ apiVersions: new Set(["entity.k8slens.dev/v1alpha1"]), kind: "KubernetesCluster", title: "Metrics", group: "Settings", id: "metrics", orderNumber: 40, components: { View: MetricsKubernetesClusterSettings, }, }), injectionToken: entitySettingInjectionToken, }); export default metricsKubernetesClusterEntitySettingsInjectable;