AccordionsItem.jsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import {Accordion, AccordionDetails, AccordionSummary, Typography, useMediaQuery} from "@mui/material";
  2. import {useState} from "react";
  3. import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
  4. export const AccordionsItem = ({id, title, content}) => {
  5. const matches = useMediaQuery('(max-width:768px)')
  6. const [expanded, setExpanded] = useState(false)
  7. const handleChange = (panel) => (event, isExpanded) => {
  8. setExpanded(isExpanded ? panel : false)
  9. }
  10. return (
  11. <Accordion
  12. expanded={expanded === id}
  13. onChange={handleChange(id)}
  14. sx={{padding: matches ? '10px' : "20px"}}
  15. >
  16. <AccordionSummary
  17. expandIcon={<ExpandMoreIcon />}
  18. aria-controls="panel1a-content"
  19. id="panel1a-header"
  20. >
  21. <Typography
  22. variant={matches ? 'body1' : 'h5'}
  23. letterSpacing='3px'
  24. >
  25. { title.toUpperCase() || 'title' }
  26. </Typography>
  27. </AccordionSummary>
  28. <AccordionDetails>
  29. <Typography
  30. variant='body1'
  31. color='#616161'
  32. lineHeight='1.7em'
  33. fontWeight='300'
  34. >
  35. { content || 'content' }
  36. </Typography>
  37. </AccordionDetails>
  38. </Accordion>
  39. )
  40. }