mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Expose kubeObjectDetailRegistry via extension-api (#1185)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
20e26f3206
commit
eb5aca628d
@ -4,5 +4,6 @@ export * from "./page-registry"
|
|||||||
export * from "./menu-registry"
|
export * from "./menu-registry"
|
||||||
export * from "./app-preference-registry"
|
export * from "./app-preference-registry"
|
||||||
export * from "./status-bar-registry"
|
export * from "./status-bar-registry"
|
||||||
|
export * from "./kube-object-detail-registry";
|
||||||
export * from "./kube-object-menu-registry";
|
export * from "./kube-object-menu-registry";
|
||||||
export * from "./cluster-feature-registry"
|
export * from "./cluster-feature-registry"
|
||||||
|
|||||||
22
src/extensions/registries/kube-object-detail-registry.ts
Normal file
22
src/extensions/registries/kube-object-detail-registry.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import React from "react"
|
||||||
|
import { BaseRegistry } from "./base-registry";
|
||||||
|
|
||||||
|
export interface KubeObjectDetailComponents {
|
||||||
|
Details: React.ComponentType<any>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface KubeObjectDetailRegistration {
|
||||||
|
kind: string;
|
||||||
|
apiVersions: string[];
|
||||||
|
components: KubeObjectDetailComponents;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class KubeObjectDetailRegistry extends BaseRegistry<KubeObjectDetailRegistration> {
|
||||||
|
getItemsForKind(kind: string, apiVersion: string) {
|
||||||
|
return this.items.filter((item) => {
|
||||||
|
return item.kind === kind && item.apiVersions.includes(apiVersion)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const kubeObjectDetailRegistry = new KubeObjectDetailRegistry()
|
||||||
@ -1,33 +1 @@
|
|||||||
import { observable } from "mobx"
|
export { kubeObjectDetailRegistry } from "../../extensions/registries/kube-object-detail-registry"
|
||||||
import React from "react"
|
|
||||||
|
|
||||||
export interface KubeObjectDetailComponents {
|
|
||||||
Details: React.ComponentType<any>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface KubeObjectDetailRegistration {
|
|
||||||
kind: string;
|
|
||||||
apiVersions: string[];
|
|
||||||
components: KubeObjectDetailComponents;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class KubeObjectDetailRegistry {
|
|
||||||
items = observable.array<KubeObjectDetailRegistration>([], { deep: false });
|
|
||||||
|
|
||||||
add(item: KubeObjectDetailRegistration) {
|
|
||||||
this.items.push(item)
|
|
||||||
return () => {
|
|
||||||
this.items.replace(
|
|
||||||
this.items.filter(c => c !== item)
|
|
||||||
)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
getItemsForKind(kind: string, apiVersion: string) {
|
|
||||||
return this.items.filter((item) => {
|
|
||||||
return item.kind === kind && item.apiVersions.includes(apiVersion)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const kubeObjectDetailRegistry = new KubeObjectDetailRegistry()
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user