1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Remove unnecessary 'onlyVisibleForSource' (#2982)

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-06-09 00:01:26 -04:00 committed by GitHub
parent 6044d08a74
commit 6677e22371
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 24 deletions

View File

@ -101,20 +101,18 @@ export class KubernetesCluster extends CatalogEntity<CatalogEntityMetadata, Kube
} }
async onContextMenuOpen(context: CatalogEntityContextMenuContext) { async onContextMenuOpen(context: CatalogEntityContextMenuContext) {
context.menuItems = [ if (!this.metadata.source || this.metadata.source === "local") {
{ context.menuItems.push({
title: "Settings", title: "Settings",
icon: "edit", icon: "edit",
onlyVisibleForSource: "local",
onClick: async () => context.navigate(`/entity/${this.metadata.uid}/settings`) onClick: async () => context.navigate(`/entity/${this.metadata.uid}/settings`)
}, });
]; }
if (this.metadata.labels["file"]?.startsWith(ClusterStore.storedKubeConfigFolder)) { if (this.metadata.labels["file"]?.startsWith(ClusterStore.storedKubeConfigFolder)) {
context.menuItems.push({ context.menuItems.push({
title: "Delete", title: "Delete",
icon: "delete", icon: "delete",
onlyVisibleForSource: "local",
onClick: async () => ClusterStore.getInstance().removeById(this.metadata.uid), onClick: async () => ClusterStore.getInstance().removeById(this.metadata.uid),
confirm: { confirm: {
message: `Remove Kubernetes Cluster "${this.metadata.name} from ${productName}?` message: `Remove Kubernetes Cluster "${this.metadata.name} from ${productName}?`

View File

@ -104,10 +104,6 @@ export interface CatalogEntityContextMenu {
* Menu icon * Menu icon
*/ */
icon?: string; icon?: string;
/**
* Show only if empty or if value matches with entity.metadata.source
*/
onlyVisibleForSource?: string;
/** /**
* OnClick handler * OnClick handler
*/ */

View File

@ -78,23 +78,24 @@ export class CatalogEntityDrawerMenu<T extends CatalogEntity> extends React.Comp
return []; return [];
} }
const menuItems = this.contextMenu.menuItems.filter((menuItem) => { const items: React.ReactChild[] = [];
return menuItem.icon && !menuItem.onlyVisibleForSource || menuItem.onlyVisibleForSource === entity.metadata.source;
});
const items = menuItems.map((menuItem, index) => { for (const menuItem of this.contextMenu.menuItems) {
const props = menuItem.icon.includes("<svg") ? { svg: menuItem.icon } : { material: menuItem.icon }; if (!menuItem.icon) {
continue;
}
return ( const key = menuItem.icon.includes("<svg") ? "svg" : "material";
<MenuItem key={index} onClick={() => this.onMenuItemClick(menuItem)}>
items.push(
<MenuItem key={menuItem.title} onClick={() => this.onMenuItemClick(menuItem)}>
<Icon <Icon
title={menuItem.title} title={menuItem.title}
{...props} {...{ [key]: menuItem.icon }}
/> />
</MenuItem> </MenuItem>
); );
}
});
items.unshift( items.unshift(
<MenuItem key="add-to-hotbar" onClick={() => this.addToHotbar(entity) }> <MenuItem key="add-to-hotbar" onClick={() => this.addToHotbar(entity) }>

View File

@ -171,12 +171,10 @@ export class Catalog extends React.Component<Props> {
} }
renderItemMenu = (item: CatalogEntityItem) => { renderItemMenu = (item: CatalogEntityItem) => {
const menuItems = this.contextMenu.menuItems.filter((menuItem) => !menuItem.onlyVisibleForSource || menuItem.onlyVisibleForSource === item.entity.metadata.source);
return ( return (
<MenuActions onOpen={() => item.onContextMenuOpen(this.contextMenu)}> <MenuActions onOpen={() => item.onContextMenuOpen(this.contextMenu)}>
{ {
menuItems.map((menuItem, index) => ( this.contextMenu.menuItems.map((menuItem, index) => (
<MenuItem key={index} onClick={() => this.onMenuItemClick(menuItem)}> <MenuItem key={index} onClick={() => this.onMenuItemClick(menuItem)}>
{menuItem.title} {menuItem.title}
</MenuItem> </MenuItem>

View File

@ -106,7 +106,7 @@ export class HotbarEntityIcon extends React.Component<Props> {
}; };
const isActive = this.isActive(entity); const isActive = this.isActive(entity);
const isPersisted = this.isPersisted(entity); const isPersisted = this.isPersisted(entity);
const menuItems = this.contextMenu?.menuItems.filter((menuItem) => !menuItem.onlyVisibleForSource || menuItem.onlyVisibleForSource === entity.metadata.source); const menuItems = this.contextMenu?.menuItems ?? [];
if (!isPersisted) { if (!isPersisted) {
menuItems.unshift({ menuItems.unshift({