From eb5aca628d3ecd3c373971d4118d4a58f5fa4a16 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Fri, 30 Oct 2020 15:57:32 +0200 Subject: [PATCH] Expose kubeObjectDetailRegistry via extension-api (#1185) Signed-off-by: Jari Kolehmainen --- src/extensions/registries/index.ts | 1 + .../registries/kube-object-detail-registry.ts | 22 ++++++++++++ .../api/kube-object-detail-registry.ts | 34 +------------------ 3 files changed, 24 insertions(+), 33 deletions(-) create mode 100644 src/extensions/registries/kube-object-detail-registry.ts diff --git a/src/extensions/registries/index.ts b/src/extensions/registries/index.ts index 3a374fd6c6..137a725170 100644 --- a/src/extensions/registries/index.ts +++ b/src/extensions/registries/index.ts @@ -4,5 +4,6 @@ export * from "./page-registry" export * from "./menu-registry" export * from "./app-preference-registry" export * from "./status-bar-registry" +export * from "./kube-object-detail-registry"; export * from "./kube-object-menu-registry"; export * from "./cluster-feature-registry" diff --git a/src/extensions/registries/kube-object-detail-registry.ts b/src/extensions/registries/kube-object-detail-registry.ts new file mode 100644 index 0000000000..bfa8861ccf --- /dev/null +++ b/src/extensions/registries/kube-object-detail-registry.ts @@ -0,0 +1,22 @@ +import React from "react" +import { BaseRegistry } from "./base-registry"; + +export interface KubeObjectDetailComponents { + Details: React.ComponentType; +} + +export interface KubeObjectDetailRegistration { + kind: string; + apiVersions: string[]; + components: KubeObjectDetailComponents; +} + +export class KubeObjectDetailRegistry extends BaseRegistry { + getItemsForKind(kind: string, apiVersion: string) { + return this.items.filter((item) => { + return item.kind === kind && item.apiVersions.includes(apiVersion) + }) + } +} + +export const kubeObjectDetailRegistry = new KubeObjectDetailRegistry() diff --git a/src/renderer/api/kube-object-detail-registry.ts b/src/renderer/api/kube-object-detail-registry.ts index 16329ae3a1..f844da9ef3 100644 --- a/src/renderer/api/kube-object-detail-registry.ts +++ b/src/renderer/api/kube-object-detail-registry.ts @@ -1,33 +1 @@ -import { observable } from "mobx" -import React from "react" - -export interface KubeObjectDetailComponents { - Details: React.ComponentType; -} - -export interface KubeObjectDetailRegistration { - kind: string; - apiVersions: string[]; - components: KubeObjectDetailComponents; -} - -export class KubeObjectDetailRegistry { - items = observable.array([], { 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() +export { kubeObjectDetailRegistry } from "../../extensions/registries/kube-object-detail-registry"