Updated Columns in Catalog Table

Updated columns in the catalog table view to vary columns based on entity kind.
Specifically excluding columns that aren't supported by that entity kind.

Signed-off-by: Alex Crome <afscrome@users.noreply.github.com>
This commit is contained in:
Alex Crome
2022-03-26 20:29:34 +00:00
parent 64e7349e9b
commit 5d5fdbe541
2 changed files with 49 additions and 9 deletions
@@ -64,18 +64,52 @@ export const CatalogTable = (props: CatalogTableProps) => {
const { isStarredEntity, toggleStarredEntity } = useStarredEntities();
const { loading, error, entities, filters } = useEntityList();
const defaultColumns: TableColumn<CatalogTableRow>[] = useMemo(
() => [
const defaultColumns: TableColumn<CatalogTableRow>[] = useMemo(() => {
return [
columnFactories.createNameColumn({ defaultKind: filters.kind?.value }),
columnFactories.createSystemColumn(),
columnFactories.createOwnerColumn(),
columnFactories.createSpecTypeColumn(),
columnFactories.createSpecLifecycleColumn(),
...createEntitySpecificColumns(),
columnFactories.createMetadataDescriptionColumn(),
columnFactories.createTagsColumn(),
],
[filters.kind?.value],
);
];
function createEntitySpecificColumns(): TableColumn<CatalogTableRow>[] {
switch (filters.kind?.value) {
case 'api':
return [
columnFactories.createSystemColumn(),
columnFactories.createOwnerColumn(),
columnFactories.createSpecTypeColumn(),
columnFactories.createSpecLifecycleColumn(),
];
case 'component':
return [
columnFactories.createSystemColumn(),
columnFactories.createOwnerColumn(),
columnFactories.createSpecTypeColumn(),
columnFactories.createSpecLifecycleColumn(),
];
case 'domain':
return [columnFactories.createOwnerColumn()];
case 'group':
return [columnFactories.createSpecTypeColumn()];
case 'location':
return [columnFactories.createSpecTypeColumn()];
case 'resource':
return [
columnFactories.createSystemColumn(),
columnFactories.createOwnerColumn(),
columnFactories.createSpecTypeColumn(),
columnFactories.createSpecLifecycleColumn(),
];
case 'system':
return [columnFactories.createOwnerColumn()];
case 'template':
return [columnFactories.createSpecTypeColumn()];
default:
return [];
}
}
}, [filters.kind?.value]);
const showTypeColumn = filters.type === undefined;
// TODO(timbonicus): remove the title from the CatalogTable once using EntitySearchBar