Header.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React from 'react'
  2. import { makeStyles } from '@material-ui/styles'
  3. import Breadcrumbs from '@material-ui/core/Breadcrumbs';
  4. import Link from '@material-ui/core/Link';
  5. import Typography from '@material-ui/core/Typography';
  6. const useStyles = makeStyles({
  7. root: {
  8. alignItems: 'center',
  9. display: 'flex',
  10. flexFlow: 'row',
  11. marginBottom: 20,
  12. width: '100%',
  13. },
  14. context: {
  15. flex: '1 0 auto',
  16. },
  17. actions: {
  18. flex: '0 0 auto',
  19. },
  20. });
  21. const Header = (props) => {
  22. const classes = useStyles()
  23. const { title, breadcrumbs } = props
  24. return (
  25. <div className={classes.root}>
  26. <div className={classes.context}>
  27. {title && <Typography variant="h4" className={classes.title}>{props.title}</Typography>}
  28. {breadcrumbs && breadcrumbs.length > 0 && (
  29. <Breadcrumbs aria-label="breadcrumb">
  30. {breadcrumbs.slice(0, breadcrumbs.length-1).map(b => (
  31. <Link color="inherit" href={b.href} key={b.name}>{b.name}</Link>
  32. ))}
  33. <Typography color="textPrimary">{breadcrumbs[breadcrumbs.length-1].name}</Typography>
  34. </Breadcrumbs>
  35. )}
  36. </div>
  37. <div className={classes.actions}>
  38. {props.children}
  39. </div>
  40. </div>
  41. )
  42. }
  43. export default Header