X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/bccb9ca5151f041d8c8b73098a3e1874023e3efa..d5f11bb2fbb20c85e8ef857caedd58adf333e522:/src/components/breadcrumbs/breadcrumbs.tsx diff --git a/src/components/breadcrumbs/breadcrumbs.tsx b/src/components/breadcrumbs/breadcrumbs.tsx index da549dba..3d668856 100644 --- a/src/components/breadcrumbs/breadcrumbs.tsx +++ b/src/components/breadcrumbs/breadcrumbs.tsx @@ -2,16 +2,20 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { Button, Grid, StyleRulesCallback, WithStyles, Typography, Tooltip } from '@material-ui/core'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import { withStyles } from '@material-ui/core'; +import { IllegalNamingWarning } from '../warning/warning'; +import { IconType } from 'components/icon/icon'; +import grey from '@material-ui/core/colors/grey'; export interface Breadcrumb { label: string; + icon?: IconType; } -type CssRules = "item" | "currentItem" | "label"; +type CssRules = "item" | "currentItem" | "label" | "icon"; const styles: StyleRulesCallback = theme => ({ item: { @@ -22,10 +26,14 @@ const styles: StyleRulesCallback = theme => ({ }, label: { textTransform: "none" - } + }, + icon: { + fontSize: 20, + color: grey["600"] + }, }); -interface BreadcrumbsProps { +export interface BreadcrumbsProps { items: Breadcrumb[]; onClick: (breadcrumb: Breadcrumb) => void; onContextMenu: (event: React.MouseEvent, breadcrumb: Breadcrumb) => void; @@ -33,18 +41,28 @@ interface BreadcrumbsProps { export const Breadcrumbs = withStyles(styles)( ({ classes, onClick, onContextMenu, items }: BreadcrumbsProps & WithStyles) => - + { items.map((item, index) => { const isLastItem = index === items.length - 1; + const isFirstItem = index === 0; + const Icon = item.icon || (() => (null)); return ( + {isFirstItem ? null : }