/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import React from "react"; import { observer } from "mobx-react"; import type { NodeStore } from "../+nodes/store"; import { cssNames } from "../../utils"; import { Radio, RadioGroup } from "../radio"; import type { ClusterOverviewStore } from "./cluster-overview-store/cluster-overview-store"; import { MetricNodeRole, MetricType } from "./cluster-overview-store/cluster-overview-store"; import clusterOverviewStoreInjectable from "./cluster-overview-store/cluster-overview-store.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import nodeStoreInjectable from "../+nodes/store.injectable"; interface Dependencies { clusterOverviewStore: ClusterOverviewStore; nodeStore: NodeStore; } const NonInjectedClusterMetricSwitchers = observer(({ clusterOverviewStore, nodeStore, }: Dependencies) => { const { masterNodes, workerNodes } = nodeStore; const metricsValues = clusterOverviewStore.getMetricsValues(clusterOverviewStore.metrics); const disableRoles = !masterNodes.length || !workerNodes.length; const disableMetrics = !metricsValues.length; return (
clusterOverviewStore.metricNodeRole = metric} >
clusterOverviewStore.metricType = value} >
); }); export const ClusterMetricSwitchers = withInjectables(NonInjectedClusterMetricSwitchers, { getProps: (di) => ({ clusterOverviewStore: di.inject(clusterOverviewStoreInjectable), nodeStore: di.inject(nodeStoreInjectable), }), });