Footer.jsx 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import {Container, Typography, Link, Grid, Box, useMediaQuery} 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. 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 dolore doloremque eum exercitationem illum incidunt inventore ipsam itaque, modi odio odit quo sed sint suscipit vitae voluptates.
  110. </Typography>
  111. </Grid>
  112. </Grid>
  113. <Box
  114. display="flex"
  115. flexDirection={matches2 ? "column-reverse" : "row"}
  116. alignItems="center"
  117. justifyContent="space-between"
  118. marginTop="30px"
  119. >
  120. <Typography
  121. variant="body2"
  122. color="#969696"
  123. fontSize="13px"
  124. >
  125. © 2022 ABRAXAS. All rights reserved.
  126. </Typography>
  127. <Typography
  128. variant="body2"
  129. marginBottom={matches2 ? "10px" : "0"}
  130. >
  131. <LinkRouter to='/privacy-policy' className="Footer__Bottom-link"> PRIVACY POLICY </LinkRouter>
  132. <LinkRouter to='/faq' className="Footer__Bottom-link"> FAQ </LinkRouter>
  133. </Typography>
  134. </Box>
  135. </Container>
  136. </footer>
  137. )
  138. }
  139. export default Footer;