import React from 'react'; import { RawResourceGroup } from './RawResouceGroup'; import { RawResource } from './RawResource'; import { RawResourceUtils } from '../RawResourceUtils'; interface IRawResourceGroupsProps { resources: IApiKubernetesResource[]; groupBy: string; } interface IRawResourceGroupsState {} export class RawResourceGroups extends React.Component { constructor(props: IRawResourceGroupsProps) { super(props); } private buildGroupByModel(resources: IApiKubernetesResource[]) { const values = resources.map((r: Record) => String(r[this.props.groupBy])); return Object.assign( {}, ...values.map((value) => ({ [value]: resources.filter((r: Record) => String(r[this.props.groupBy]) === value), })), ) as Record; } private groupTitle(title: string): string { if (this.props.groupBy == 'namespace') { return RawResourceUtils.namespaceDisplayName(title); } return title; } public render() { const groups = this.buildGroupByModel(this.props.resources); return (
{...Object.entries(groups).map(([key, value]) => { return key !== 'undefined' ? ( {...value.map((resource) => ( ))} ) : ( <> ); })}
); } }