import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import { withStyles } from '@material-ui/core';
+interface Breadcrumb {
+ label: string
+}
+
interface BreadcrumbsDataProps {
- items: string[]
+ items: Breadcrumb[]
}
-type BreadcrumbsProps = BreadcrumbsDataProps & WithStyles<CssRules>;
+interface BreadcrumbsActionProps {
+ onClick: (breadcrumb: Breadcrumb) => any
+}
+
+type BreadcrumbsProps = BreadcrumbsDataProps & BreadcrumbsActionProps & WithStyles<CssRules>;
class Breadcrumbs extends React.Component<BreadcrumbsProps> {
render() {
- const { classes } = this.props;
+ const { classes, onClick } = this.props;
return <Grid container alignItems="center">
{
this.getInactiveItems().map((item, index) => (
<React.Fragment key={index}>
- <Button color="inherit" className={classes.inactiveItem}>{item}</Button>
+ <Button
+ color="inherit"
+ className={classes.inactiveItem}
+ onClick={() => onClick(item)}
+ >
+ {item.label}
+ </Button>
<ChevronRightIcon color="inherit" className={classes.inactiveItem} />
</React.Fragment>
))
}
{
this.getActiveItem().map((item, index) => (
- <Button key={index} color="inherit">{item}</Button>
+ <Button
+ color="inherit"
+ key={index}
+ onClick={() => onClick(item)}
+ >
+ {item.label}
+ </Button>
))
}
</Grid>
getActiveItem = () => {
return this.props.items.slice(-1)
}
+
}
type CssRules = 'inactiveItem'