Header.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. <img src={ require('../images/logo.png') } alt="OpenCost" />
  27. <div className={classes.context}>
  28. {title && <Typography variant="h4" className={classes.title}>{props.title}</Typography>}
  29. {breadcrumbs && breadcrumbs.length > 0 && (
  30. <Breadcrumbs aria-label="breadcrumb">
  31. {breadcrumbs.slice(0, breadcrumbs.length-1).map(b => (
  32. <Link color="inherit" href={b.href} key={b.name}>{b.name}</Link>
  33. ))}
  34. <Typography color="textPrimary">{breadcrumbs[breadcrumbs.length-1].name}</Typography>
  35. </Breadcrumbs>
  36. )}
  37. </div>
  38. <div className={classes.actions}>
  39. {props.children}
  40. </div>
  41. </div>
  42. )
  43. }
  44. export default Header