Breadcrumbs.jsx 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import React from 'react';
  2. import Breadcrumbs from '@mui/material/Breadcrumbs';
  3. import Link from "react-router-dom/es/Link";
  4. import Stack from '@mui/material/Stack';
  5. import {Typography, useMediaQuery} from "@mui/material";
  6. import background from "../img/breadcrumbs/bg-breadcrumbs.png";
  7. const Breadcrumb = ({links=['this page'], title}) => {
  8. const matches = useMediaQuery('(max-width:899px)');
  9. let arr = links.map(i => {
  10. let link = Array.from(i).map(j => j === ' ' ? '-' : j).join('').toLowerCase()
  11. return <Link
  12. key={i.toString()}
  13. style={{
  14. color: "#fff",
  15. textDecoration: "none",
  16. fontSize: "11px"
  17. }}
  18. to={`/${link}`}> {i.toUpperCase()}
  19. </Link>
  20. })
  21. arr.unshift(
  22. <Link
  23. style={{
  24. color: "#fff",
  25. textDecoration: "none",
  26. fontSize: "11px"
  27. }}
  28. to="/"
  29. key={'homeBreadcrumbs'}
  30. >
  31. HOME
  32. </Link>
  33. )
  34. return (
  35. <article
  36. style={{
  37. background: `url(${background}) center/contain repeat`,
  38. padding: "40px 0",
  39. height: "210px",
  40. display: "flex",
  41. flexDirection: "column",
  42. justifyContent: "center",
  43. alignItems: "center",
  44. position: "relative"
  45. }}
  46. >
  47. <Typography
  48. fontWeight={300}
  49. color="#fff"
  50. variant={matches ? "h4" : "h3"}
  51. >
  52. {title || links[links.length-1].toUpperCase()}
  53. </Typography>
  54. <Stack
  55. spacing={2}
  56. position="absolute"
  57. bottom="40px"
  58. >
  59. <Breadcrumbs
  60. color="#fff"
  61. separator="›"
  62. aria-label="breadcrumb"
  63. >
  64. {arr}
  65. </Breadcrumbs>
  66. </Stack>
  67. </article>
  68. );
  69. }
  70. export default Breadcrumb;