diff --git a/src/renderer/components/kube-object/kube-object-list-layout.tsx b/src/renderer/components/kube-object/kube-object-list-layout.tsx index 0ecb602c16..a52d2a0e7c 100644 --- a/src/renderer/components/kube-object/kube-object-list-layout.tsx +++ b/src/renderer/components/kube-object/kube-object-list-layout.tsx @@ -53,9 +53,7 @@ export class KubeObjectListLayout extends React.Component { - return ; - }} + renderItemMenu={(item) => } // safe because we are dealing with KubeObjects here /> ); } diff --git a/src/renderer/components/kube-object/kube-object-menu.tsx b/src/renderer/components/kube-object/kube-object-menu.tsx index 036f0679db..470e98dac4 100644 --- a/src/renderer/components/kube-object/kube-object-menu.tsx +++ b/src/renderer/components/kube-object/kube-object-menu.tsx @@ -7,13 +7,13 @@ import { hideDetails } from "./kube-object-details"; import { apiManager } from "../../api/api-manager"; import { kubeObjectMenuRegistry } from "../../../extensions/registries/kube-object-menu-registry"; -export interface KubeObjectMenuProps extends MenuActionsProps { - object: T; +export interface KubeObjectMenuProps extends MenuActionsProps { + object: T | null | undefined; editable?: boolean; removable?: boolean; } -export class KubeObjectMenu extends React.Component { +export class KubeObjectMenu extends React.Component> { get store() { const { object } = this.props; @@ -52,23 +52,35 @@ export class KubeObjectMenu extends React.Component { @autobind() renderRemoveMessage() { const { object } = this.props; - const resourceKind = object.kind; - const resourceName = object.getName(); + + if (!object) { + return null; + } return ( -

Remove {resourceKind} {resourceName}?

+

Remove {object.kind} {object.getName()}?

); } + getMenuItems(object: T): React.ReactChild[] { + if (!object) { + return []; + } + + return kubeObjectMenuRegistry + .getItemsForKind(object.kind, object.apiVersion) + .map(({components: { MenuItem }}, index) => ( + + )); + } + render() { const { remove, update, renderRemoveMessage, isEditable, isRemovable } = this; - const { className, object, editable, removable, toolbar, ...menuProps } = this.props; - - if (!object) return null; - - const menuItems = kubeObjectMenuRegistry.getItemsForKind(object.kind, object.apiVersion).map((item, index) => { - return ; - }); + const { className, object, editable, removable, ...menuProps } = this.props; return ( { updateAction={isEditable ? update : undefined} removeAction={isRemovable ? remove : undefined} removeConfirmationMessage={renderRemoveMessage} - toolbar={toolbar} {...menuProps} > - {menuItems} + {this.getMenuItems(object)} ); }