mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* fix cluster settings page layout Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * cleanup Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor cluster settings to pluggable entity settings Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix gh actions network timeout on yarn install Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * review changes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import type React from "react";
|
|
import { CatalogEntity } from "../../common/catalog-entity";
|
|
import { BaseRegistry } from "./base-registry";
|
|
|
|
export interface EntitySettingViewProps {
|
|
entity: CatalogEntity;
|
|
}
|
|
|
|
export interface EntitySettingComponents {
|
|
View: React.ComponentType<EntitySettingViewProps>;
|
|
}
|
|
|
|
export interface EntitySettingRegistration {
|
|
title: string;
|
|
kind: string;
|
|
apiVersions: string[];
|
|
source?: string;
|
|
id?: string;
|
|
components: EntitySettingComponents;
|
|
}
|
|
|
|
export interface RegisteredEntitySetting extends EntitySettingRegistration {
|
|
id: string;
|
|
}
|
|
|
|
export class EntitySettingRegistry extends BaseRegistry<EntitySettingRegistration, RegisteredEntitySetting> {
|
|
getRegisteredItem(item: EntitySettingRegistration): RegisteredEntitySetting {
|
|
return {
|
|
id: item.id || item.title.toLowerCase(),
|
|
...item,
|
|
};
|
|
}
|
|
|
|
getItemsForKind(kind: string, apiVersion: string, source?: string) {
|
|
const items = this.getItems().filter((item) => {
|
|
return item.kind === kind && item.apiVersions.includes(apiVersion);
|
|
});
|
|
|
|
if (source) {
|
|
return items.filter((item) => {
|
|
return !item.source || item.source === source;
|
|
});
|
|
} else {
|
|
return items;
|
|
}
|
|
}
|
|
}
|
|
|
|
export const entitySettingRegistry = new EntitySettingRegistry();
|