// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; import { Popover, List, ListItem, ListItemIcon, ListItemText, Divider } from "@material-ui/core"; import { DefaultTransformOrigin } from "../popover/helpers"; import { IconType } from "../icon/icon"; export interface ContextMenuItem { name: string; icon: IconType; } export type ContextMenuItemGroup = ContextMenuItem[]; export interface ContextMenuProps { anchorEl?: HTMLElement; items: ContextMenuItemGroup[]; onItemClick: (action: ContextMenuItem) => void; onClose: () => void; } export default class ContextMenu extends React.PureComponent { render() { const { anchorEl, items, onClose, onItemClick} = this.props; return {items.map((group, groupIndex) => {group.map((item, actionIndex) => onItemClick(item)}> {item.name} )} {groupIndex < items.length - 1 && } )} ; } handleContextMenu = (event: React.MouseEvent) => { event.preventDefault(); this.props.onClose(); } }