Footer.jsx 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import {Container, Typography, Link, Grid, Box, useMediaQuery, makeStyles} from "@mui/material";
  2. import LocalPhoneIcon from '@mui/icons-material/LocalPhone';
  3. import LocationOnIcon from '@mui/icons-material/LocationOn';
  4. import EmailIcon from '@mui/icons-material/Email';
  5. import WatchLaterIcon from '@mui/icons-material/WatchLater';
  6. import FacebookIcon from '@mui/icons-material/Facebook';
  7. import InstagramIcon from '@mui/icons-material/Instagram';
  8. import TwitterIcon from '@mui/icons-material/Twitter';
  9. import YouTubeIcon from '@mui/icons-material/YouTube';
  10. import LinkRouter from "react-router-dom/es/Link";
  11. import background from "../img/footer/bg-footer.png"
  12. import "../scss/Footer.scss"
  13. import Social from "./SocialLink";
  14. const contactDefault = [
  15. {'icon': LocalPhoneIcon, 'text': '+123 488 9652', 'url': '#'},
  16. {'icon': LocationOnIcon, 'text': '25 West 21th Street, Miami FL, USA', 'url': '#'},
  17. {'icon': EmailIcon, 'text': 'info@abraxas.com', 'url': '#'},
  18. {'icon': WatchLaterIcon, 'text': 'Mon-Fri: 10:00 - 18:00', 'url': '#'}
  19. ]
  20. const linksSocialDefault = [
  21. {'icon': FacebookIcon, 'url': 'https://www.facebook.com/'},
  22. {'icon': InstagramIcon, 'url': 'https://www.instagram.com/'},
  23. {'icon': TwitterIcon, 'url': 'https://twitter.com/home'},
  24. {'icon': YouTubeIcon, 'url': 'https://www.youtube.com/'},
  25. ]
  26. const Contact = ({Icon, text, link}) => {
  27. return (
  28. <Typography
  29. color="inherit"
  30. variant="h6"
  31. noWrap
  32. component="div"
  33. >
  34. <Link
  35. className='Footer__Contact'
  36. display="flex"
  37. flexDirection="row"
  38. alignItems="center"
  39. textAlign="left"
  40. padding="10px 0"
  41. component="a"
  42. variant="body2"
  43. color="#fff"
  44. underline="none"
  45. href={link}
  46. >
  47. <Icon />
  48. {text}
  49. </Link>
  50. </Typography>
  51. )
  52. }
  53. export const Footer = ({contact=contactDefault, linksSocial=linksSocialDefault}) => {
  54. const matches = useMediaQuery('(max-width:899px)');
  55. const matches2 = useMediaQuery('(max-width:450px)');
  56. return (
  57. <footer
  58. className="Footer"
  59. style={{background: `url(${background}) center repeat`, padding: "40px 0"}}
  60. >
  61. <Container maxWidth="lg">
  62. <Grid container spacing={{ xs: 2, md: 3 }} columns={{ xs: 1, sm: 8, md: 12 }}>
  63. <Grid
  64. item
  65. sm={12} md={4}
  66. width={matches ? "100%" : "auto"}
  67. >
  68. {(contact || []).map((item, index) =>
  69. <Contact key={index} Icon={item.icon} text={item.text} link={item.url}/>
  70. )}
  71. </Grid>
  72. <Grid
  73. item
  74. sm={12} md={4}
  75. display="flex"
  76. flexDirection="column"
  77. alignItems="center"
  78. justifyContent="center"
  79. width={matches ? "100%" : "auto"}
  80. >
  81. <Typography
  82. variant="h4"
  83. textAlign="center"
  84. marginBottom="20px"
  85. >
  86. <LinkRouter to='/' className="Footer__Logo"> ABRAXAS </LinkRouter>
  87. </Typography>
  88. <Box>
  89. {(linksSocial || []).map((item, index) =>
  90. <Social key={index} Icon={item.icon} link={item.url}/>
  91. )}
  92. </Box>
  93. </Grid>
  94. <Grid
  95. item
  96. sm={12} md={4}
  97. display="flex"
  98. justifyContent={matches ? "center" : "end"}
  99. width={matches ? "100%" : "auto"}
  100. >
  101. <Typography
  102. variant="body1"
  103. textAlign={matches ? "center" : "right"}
  104. color="#969696"
  105. fontSize="14px"
  106. maxWidth="275px"
  107. lineHeight="1.7em"
  108. >
  109. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid, animi consectetur, dicta
  110. dolore doloremque eum exercitationem illum incidunt inventore ipsam itaque, modi odio odit
  111. quo sed sint suscipit vitae voluptates.
  112. </Typography>
  113. </Grid>
  114. </Grid>
  115. <Box
  116. display="flex"
  117. flexDirection={matches2 ? "column-reverse" : "row"}
  118. alignItems="center"
  119. justifyContent="space-between"
  120. marginTop="30px"
  121. >
  122. <Typography
  123. variant="body2"
  124. color="#969696"
  125. fontSize="13px"
  126. >
  127. © 2022 ABRAXAS. All rights reserved.
  128. </Typography>
  129. <Typography
  130. variant="body2"
  131. marginBottom={matches2 ? "10px" : "0"}
  132. >
  133. <LinkRouter to='/privacy-policy' className="Footer__Bottom-link"> PRIVACY POLICY </LinkRouter>
  134. <LinkRouter to='/faq' className="Footer__Bottom-link"> FAQ </LinkRouter>
  135. </Typography>
  136. </Box>
  137. </Container>
  138. </footer>
  139. )
  140. }