X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e4f350462118a86831f92eb375c2bc89cbf85920..cc70636e87a68db6a6af296a924e66e78578280a:/src/components/breadcrumbs/breadcrumbs.tsx diff --git a/src/components/breadcrumbs/breadcrumbs.tsx b/src/components/breadcrumbs/breadcrumbs.tsx index 71796661..301f3041 100644 --- a/src/components/breadcrumbs/breadcrumbs.tsx +++ b/src/components/breadcrumbs/breadcrumbs.tsx @@ -9,48 +9,61 @@ import { withStyles } from '@material-ui/core'; import { IllegalNamingWarning } from '../warning/warning'; import { IconType, FreezeIcon } from 'components/icon/icon'; import grey from '@material-ui/core/colors/grey'; -import { ResourceBreadcrumb } from 'store/breadcrumbs/breadcrumbs-actions'; import { ResourcesState } from 'store/resources/resources'; +import classNames from 'classnames'; +import { ArvadosTheme } from 'common/custom-theme'; export interface Breadcrumb { label: string; icon?: IconType; + uuid: string; } -type CssRules = "item" | "currentItem" | "label" | "icon" | "frozenIcon"; +type CssRules = "item" | "label" | "icon" | "frozenIcon"; -const styles: StyleRulesCallback = theme => ({ +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ item: { - opacity: 0.6 - }, - currentItem: { - opacity: 1 + borderRadius: '16px', + height: '32px', + backgroundColor: theme.customs.colors.grey300, + '&.parentItem': { + backgroundColor: `${theme.customs.colors.grey300}99`, + }, + '&:hover': { + backgroundColor: theme.customs.colors.grey400, + }, + '&.parentItem:hover': { + backgroundColor: `${theme.customs.colors.grey400}99`, + }, }, label: { - textTransform: "none" + textTransform: "none", + paddingRight: '3px', + paddingLeft: '3px', + lineHeight: '1.4', }, icon: { fontSize: 20, color: grey["600"], - marginRight: '10px', + marginRight: '5px', }, frozenIcon: { fontSize: 20, color: grey["600"], - marginLeft: '10px', + marginLeft: '3px', }, }); export interface BreadcrumbsProps { - items: ResourceBreadcrumb[]; + items: Breadcrumb[]; resources: ResourcesState; - onClick: (breadcrumb: ResourceBreadcrumb) => void; - onContextMenu: (event: React.MouseEvent, breadcrumb: ResourceBreadcrumb) => void; + onClick: (breadcrumb: Breadcrumb) => void; + onContextMenu: (event: React.MouseEvent, breadcrumb: Breadcrumb) => void; } export const Breadcrumbs = withStyles(styles)( ({ classes, onClick, onContextMenu, items, resources }: BreadcrumbsProps & WithStyles) => - + { items.map((item, index) => { const isLastItem = index === items.length - 1; @@ -67,8 +80,10 @@ export const Breadcrumbs = withStyles(styles)( : isLastItem ? 'breadcrumb-last' : false} - color="inherit" - className={isLastItem ? classes.currentItem : classes.item} + className={classNames( + isLastItem ? null : 'parentItem', + classes.item + )} onClick={() => onClick(item)} onContextMenu={event => onContextMenu(event, item)}> @@ -83,7 +98,7 @@ export const Breadcrumbs = withStyles(styles)( } - {!isLastItem && } + {!isLastItem && } ); })