/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import type React from "react"; import { getInjectionToken } from "@ogre-tools/injectable"; import type { Container, DaemonSet, Deployment, Ingress, Job, KubeObject, Namespace, Node, PersistentVolumeClaim, Pod, ReplicaSet, StatefulSet, } from "@k8slens/kube-object"; export type ClusterOverviewUIBlock = { id: string; Component: React.ElementType; orderNumber: number; }; // this should be moved to cluster-overview package when there is one export const clusterOverviewUIBlockInjectionToken = getInjectionToken({ id: "cluster-overview-ui-block-injection-token", }); export type KubeObjectDetailMetricsComponentProps = { object: K; }; export type KubeObjectDetailMetrics = { id: string; Component: React.ComponentType>; }; export const podDetailsMetricsInjectionToken = getInjectionToken>({ id: "pod-details-metrics-injection-token", }); export const deploymentDetailsMetricsInjectionToken = getInjectionToken>({ id: "deployment-details-metrics-injection-token", }); export const nodeDetailsMetricsInjectionToken = getInjectionToken>({ id: "node-details-metrics-injection-token", }); export const replicaSetDetailsMetricsInjectionToken = getInjectionToken>({ id: "replica-set-details-metrics-injection-token", }); export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken< KubeObjectDetailMetrics >({ id: "persistent-volume-claim-details-metrics-injection-token", }); export const statefulSetDetailsMetricsInjectionToken = getInjectionToken>({ id: "stateful-set-details-metrics-injection-token", }); export const namespaceDetailsMetricsInjectionToken = getInjectionToken>({ id: "namespace-details-metrics-injection-token", }); export const jobDetailsMetricsInjectionToken = getInjectionToken>({ id: "job-details-metrics-injection-token", }); export const daemonSetDetailsMetricsInjectionToken = getInjectionToken>({ id: "daemon-set-details-metrics-injection-token", }); export const ingressDetailsMetricsInjectionToken = getInjectionToken>({ id: "ingress-details-metrics-injection-token", }); export interface PodDetailsContainerMetricsComponentProps { container: Container; pod: Pod; } export interface PodDetailsContainerMetricsComponent { id: string; Component: React.ComponentType; } export const podDetailsContainerMetricsInjectionToken = getInjectionToken({ id: "pod-details-container-metrics-injection-token", });