1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-04-15 11:16:22 +03:00
parent fcff83b65f
commit 727fb6bb26
2 changed files with 23 additions and 8 deletions

View File

@ -30,6 +30,20 @@ export class EntitySettingRegistry extends BaseRegistry<EntitySettingRegistratio
...item,
};
}
getItemsForKind(kind: string, apiVersion: string, source?: string) {
const items = this.getItems().filter((item) => {
return item.kind === kind && item.apiVersions.includes(apiVersion);
});
if (source && source !== "") {
return items.filter((item) => {
return !item.source || item.source === source;
});
} else {
return items;
}
}
}
export const entitySettingRegistry = new EntitySettingRegistry();

View File

@ -28,13 +28,16 @@ export class EntitySettings extends React.Component<Props> {
return catalogEntityRegistry.getById(this.entityId);
}
get menuItems() {
if (!this.entity) return [];
return entitySettingRegistry.getItemsForKind(this.entity.kind, this.entity.apiVersion, this.entity.metadata.source);
}
async componentDidMount() {
const { hash } = navigation.location;
console.log(this.entityId, this.entity);
this.activeTab = entitySettingRegistry.getItems()[0]?.id;
this.activeTab = this.menuItems[0]?.id;
document.getElementById(hash.slice(1))?.scrollIntoView();
}
@ -44,14 +47,12 @@ export class EntitySettings extends React.Component<Props> {
};
renderNavigation() {
const settings = entitySettingRegistry.getItems();
return (
<>
<h2>{this.entity.metadata.name}</h2>
<Tabs className="flex column" scrollable={false} onChange={this.onTabChange} value={this.activeTab}>
<div className="header">Settings</div>
{ settings.map((setting) => {
{ this.menuItems.map((setting) => {
return <Tab key={setting.id} value={setting.id} label={setting.title} data-testid={`${setting.id}-tab`} />;
})}
</Tabs>
@ -62,7 +63,7 @@ export class EntitySettings extends React.Component<Props> {
render() {
if (!this.entity) return null;
const activeSetting = entitySettingRegistry.getItems().find((setting) => setting.id === this.activeTab);
const activeSetting = this.menuItems.find((setting) => setting.id === this.activeTab);
if (!activeSetting) {
return null;