X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e5b901f7d6f87b56f43d3dbe002c9c90a3d41349..e8d0331277033fea37a9fd73ffc781ffca8759f0:/src/components/context-menu/context-menu.tsx diff --git a/src/components/context-menu/context-menu.tsx b/src/components/context-menu/context-menu.tsx index c86c5177a3..c892ba2616 100644 --- a/src/components/context-menu/context-menu.tsx +++ b/src/components/context-menu/context-menu.tsx @@ -5,30 +5,31 @@ import * as React from "react"; import { Popover, List, ListItem, ListItemIcon, ListItemText, Divider } from "@material-ui/core"; import { DefaultTransformOrigin } from "../popover/helpers"; -export interface ContextMenuAction { +export interface ContextMenuAction { name: string; icon: string; - onClick: (item: T) => void; + openCreateDialog?: boolean; } -export type ContextMenuActionGroup = Array>; +export type ContextMenuActionGroup = ContextMenuAction[]; export interface ContextMenuProps { anchorEl?: HTMLElement; - item?: T; + actions: ContextMenuActionGroup[]; + onActionClick: (action: ContextMenuAction) => void; onClose: () => void; - actions: Array>; } export default class ContextMenu extends React.PureComponent> { render() { - const { anchorEl, onClose, actions, item } = this.props; + const { anchorEl, actions, onClose, onActionClick } = this.props; return + anchorOrigin={DefaultTransformOrigin} + onContextMenu={this.handleContextMenu}> {actions.map((group, groupIndex) => @@ -36,7 +37,7 @@ export default class ContextMenu extends React.PureComponent item && action.onClick(item)}> + onClick={() => onActionClick(action)}> @@ -49,4 +50,9 @@ export default class ContextMenu extends React.PureComponent ; } + + handleContextMenu = (event: React.MouseEvent) => { + event.preventDefault(); + this.props.onClose(); + } }