Merge branch 'master' into 14093-data-explorer-table-cell-width
[arvados-workbench2.git] / src / components / dropdown-menu / dropdown-menu.tsx
index 4f2b83af6591e6ab9d72d1e0d83914ff55bd4414..a00df75dd4e67709f2a40549f90199740781e396 100644 (file)
@@ -3,28 +3,33 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { Menu, IconButton } from '@material-ui/core';
+import Menu from '@material-ui/core/Menu';
+import IconButton from '@material-ui/core/IconButton';
 import { PopoverOrigin } from '@material-ui/core/Popover';
-
+import { Tooltip } from '@material-ui/core';
 
 interface DropdownMenuProps {
     id: string;
-    icon: React.ComponentType;
+    icon: React.ReactElement<any>;
+    title: string;
 }
 
-class DropdownMenu extends React.Component<DropdownMenuProps> {
+interface DropdownMenuState {
+    anchorEl: any;
+}
 
+export class DropdownMenu extends React.Component<DropdownMenuProps, DropdownMenuState> {
     state = {
         anchorEl: undefined
     };
 
     transformOrigin: PopoverOrigin = {
-        vertical: "top",
-        horizontal: "center"
+        vertical: -50,
+        horizontal: 0
     };
 
     render() {
-        const { icon: Icon, id, children } = this.props;
+        const { icon, id, children, title } = this.props;
         const { anchorEl } = this.state;
         return (
             <div>
@@ -32,10 +37,10 @@ class DropdownMenu extends React.Component<DropdownMenuProps> {
                     aria-owns={anchorEl ? id : undefined}
                     aria-haspopup="true"
                     color="inherit"
-                    onClick={this.handleOpen}
-
-                >
-                    <Icon />
+                    onClick={this.handleOpen}>
+                    <Tooltip title={title}>
+                        {icon}
+                    </Tooltip>
                 </IconButton>
                 <Menu
                     id={id}
@@ -43,9 +48,7 @@ class DropdownMenu extends React.Component<DropdownMenuProps> {
                     open={Boolean(anchorEl)}
                     onClose={this.handleClose}
                     onClick={this.handleClose}
-                    anchorOrigin={this.transformOrigin}
-                    transformOrigin={this.transformOrigin}
-                >
+                    transformOrigin={this.transformOrigin}>
                     {children}
                 </Menu>
             </div>
@@ -60,6 +63,3 @@ class DropdownMenu extends React.Component<DropdownMenuProps> {
         this.setState({ anchorEl: event.currentTarget });
     }
 }
-
-
-export default DropdownMenu;