/** * 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 { KubernetesCluster } from "../../../../common/catalog-entities"; import type { GetClusterById } from "../../../../common/cluster-store/get-by-id.injectable"; import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable"; import { ClusterIconSetting } from "../../cluster-settings/icon-settings"; import { ClusterKubeconfig } from "../../cluster-settings/kubeconfig"; import { ClusterNameSetting } from "../../cluster-settings/name-setting"; import type { EntitySettingViewProps } from "../extension-registrator.injectable"; import { entitySettingInjectionToken } from "../token"; interface Dependencies { getClusterById: GetClusterById; } function NonInjectedGeneralKubernetesClusterSettings({ entity, getClusterById }: EntitySettingViewProps & Dependencies) { const cluster = getClusterById(entity.getId()); if (!cluster) { return null; } return (
); } const GeneralKubernetesClusterSettings = withInjectables(NonInjectedGeneralKubernetesClusterSettings, { getProps: (di, props) => ({ ...props, getClusterById: di.inject(getClusterByIdInjectable), }), }); const generalKubernetesClusterEntitySettingsInjectable = getInjectable({ id: "general-kubernetes-cluster-entity-settings", instantiate: () => ({ apiVersions: ["entity.k8slens.dev/v1alpha1"], kind: "KubernetesCluster", source: "local", title: "General", group: "Settings", id: "general", priority: 40, components: { View: GeneralKubernetesClusterSettings, }, }), injectionToken: entitySettingInjectionToken, }); export default generalKubernetesClusterEntitySettingsInjectable;