21224: merged main to pass int tests
[arvados.git] / services / workbench2 / src / components / multiselect-toolbar / ms-toolbar-overflow-menu.tsx
index 207b341b1bb7a79915cf0787cdab8e319fb7da70..efa776713ddae5851910c995d141d7cea1717535 100644 (file)
@@ -8,7 +8,7 @@ import classnames from 'classnames';
 import { IconButton, Menu, MenuItem, StyleRulesCallback, Tooltip, WithStyles, withStyles } from '@material-ui/core';
 import { ArvadosTheme } from 'common/custom-theme';
 
-type CssRules = 'inOverflowMenu' | 'openMenuButton' | 'menu';
+type CssRules = 'inOverflowMenu' | 'openMenuButton' | 'menu' | 'menuItem' | 'menuElement';
 
 const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
     inOverflowMenu: {
@@ -20,6 +20,19 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
         right: '10px',
     },
     menu: {
+        marginLeft: 0,
+    },
+    menuItem: {
+        '&:hover': {
+            backgroundColor: 'white',
+        },
+        marginTop: 0,
+        paddingTop: 0,
+        paddingLeft: '1rem',
+        height: '2.5rem',
+    },
+    menuElement: {
+        width: '2rem',
     }
 });
 
@@ -49,13 +62,14 @@ export const OverflowMenu = withStyles(styles)((props: OverflowMenuProps & WithS
     }
     return (
         <div className={className}>
-            <Tooltip title="More Options" disableFocusListener>
+            <Tooltip title="More options" disableFocusListener>
                 <IconButton
                     aria-label='more'
                     aria-controls='long-menu'
                     aria-haspopup='true'
                     onClick={handleClick}
                     className={classes.openMenuButton}
+                    data-cy='overflow-menu-button'
                 >
                         <DoubleRightArrows />
                 </IconButton>
@@ -66,19 +80,21 @@ export const OverflowMenu = withStyles(styles)((props: OverflowMenuProps & WithS
                 keepMounted
                 open={open}
                 onClose={handleClose}
+                disableAutoFocusItem
+                className={classes.menu}
+                data-cy='overflow-menu'
             >
                 {React.Children.map(children, (child: any) => {
                     if (!visibilityMap[child.props['data-targetid']]) {
-                        return (
-                            <MenuItem
+                        return <MenuItem
                                 key={child}
                                 onClick={handleClose}
+                                className={classes.menuItem}
                             >
                                 {React.cloneElement(child, {
-                                    className: classnames(child.className, classes.inOverflowMenu),
+                                    className: classnames(classes.menuElement),
                                 })}
                             </MenuItem>
-                        );
                     }
                     return null;
                 })}