/**
* 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 { ClusterProxySetting } from "../../cluster-settings/proxy-setting";
import type { EntitySettingViewProps } from "../extension-registrator.injectable";
import { entitySettingInjectionToken } from "../token";
interface Dependencies {
getClusterById: GetClusterById;
}
function NonInjectedProxyKubernetesClusterSettings({ entity, getClusterById }: EntitySettingViewProps & Dependencies) {
const cluster = getClusterById(entity.getId());
if (!cluster) {
return null;
}
return (
);
}
const ProxyKubernetesClusterSettings = withInjectables(NonInjectedProxyKubernetesClusterSettings, {
getProps: (di, props) => ({
...props,
getClusterById: di.inject(getClusterByIdInjectable),
}),
});
const proxyKubernetesClusterEntitySettingsInjectable = getInjectable({
id: "proxy-kubernetes-cluster-entity-settings",
instantiate: () => ({
apiVersions: new Set(["entity.k8slens.dev/v1alpha1"]),
kind: "KubernetesCluster",
title: "Proxy",
group: "Settings",
id: "proxy",
orderNumber: 10,
components: {
View: ProxyKubernetesClusterSettings,
},
}),
injectionToken: entitySettingInjectionToken,
});
export default proxyKubernetesClusterEntitySettingsInjectable;