/** * 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 type { CatalogEntity } from "../common-api/catalog"; import { BaseRegistry } from "./base-registry"; export interface CatalogEntityDetailsProps { entity: T; } export interface CatalogEntityDetailComponents { Details: React.ComponentType>; } export interface CatalogEntityDetailRegistration { kind: string; apiVersions: string[]; components: CatalogEntityDetailComponents; priority?: number; } export class CatalogEntityDetailRegistry extends BaseRegistry> { getItemsForKind(kind: string, apiVersion: string) { const items = this.getItems().filter((item) => { return item.kind === kind && item.apiVersions.includes(apiVersion); }); return items.sort((a, b) => (b.priority ?? 50) - (a.priority ?? 50)); } }