import { connect } from 'react-redux'
import { ProjectsIcon, ProcessIcon, FavoriteIcon, ShareMeIcon, TrashIcon, PublicFavoriteIcon, GroupsIcon } from 'components/icon/icon'
import { TerminalIcon } from 'components/icon/icon'
-import { List, ListItem, Tooltip } from '@material-ui/core'
+import { IconButton, List, ListItem, Tooltip } from '@material-ui/core'
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'
import { ArvadosTheme } from 'common/custom-theme'
import { navigateTo } from 'store/navigation/navigation-action'
} from 'store/navigation/navigation-action'
import { navigateToUserVirtualMachines } from 'store/navigation/navigation-action'
import { RouterAction } from 'react-router-redux'
+import { User } from 'models/user'
-type CssRules = 'root' | 'unselected' | 'selected'
+type CssRules = 'button' | 'unselected' | 'selected'
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
- root: {},
+ button: {
+ width: '40px',
+ height: '40px',
+ paddingLeft: '-2rem',
+ marginLeft: '-0.6rem',
+ marginBottom: '-1rem'
+ },
unselected: {
color: theme.customs.colors.grey600,
},
},
{
name: SidePanelCollapsedCategory.GROUPS,
- icon: <GroupsIcon style={{marginLeft: '3px'}}/>,
+ icon: <GroupsIcon style={{marginLeft: '2px', scale: '85%'}}/>,
navTarget: navigateToGroups,
},
{
},
]
+type SidePanelCollapsedProps = {
+ user: User;
+ selectedPath: string;
+ navToHome: (uuid: string) => void;
+ navTo: (navTarget: RouterAction | '') => void;
+};
+
const mapStateToProps = ({auth, properties }: RootState) => {
return {
user: auth.user,
}
export const SidePanelCollapsed = withStyles(styles)(
- connect(mapStateToProps, mapDispatchToProps)(({ classes, user, selectedPath, navToHome, navTo }: WithStyles & any) => {
+ connect(mapStateToProps, mapDispatchToProps)(({ classes, user, selectedPath, navToHome, navTo }: WithStyles & SidePanelCollapsedProps) => {
const handleClick = (cat: TCollapsedCategory) => {
if (cat.name === SidePanelCollapsedCategory.PROJECTS) navToHome(user.uuid)
else navTo(cat.navTarget)
}
- const { root, unselected, selected } = classes
+ const { button, unselected, selected } = classes
return (
- <List data-cy="side-panel-collapsed" className={root}>
+ <List data-cy='side-panel-collapsed'>
{sidePanelCollapsedCategories.map((cat) => (
<ListItem
key={cat.name}
data-cy={`collapsed-${cat.name.toLowerCase().replace(/\s+/g, '-')}`}
- className={selectedPath === cat.name ? selected : unselected}
onClick={() => handleClick(cat)}
- >
+ >
<Tooltip
+ className={selectedPath === cat.name ? selected : unselected}
title={cat.name}
disableFocusListener
- >
- {cat.icon}
+ >
+ <IconButton className={button}>{cat.icon}</IconButton>
</Tooltip>
</ListItem>
))}
</List>
- )
+ );
})
)