MHidden.js 899 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import PropTypes from 'prop-types';
  2. // material
  3. import { useMediaQuery } from '@mui/material';
  4. // ----------------------------------------------------------------------
  5. MHidden.propTypes = {
  6. children: PropTypes.node,
  7. width: PropTypes.oneOf([
  8. 'xsDown',
  9. 'smDown',
  10. 'mdDown',
  11. 'lgDown',
  12. 'xlDown',
  13. 'xsUp',
  14. 'smUp',
  15. 'mdUp',
  16. 'lgUp',
  17. 'xlUp'
  18. ]).isRequired
  19. };
  20. export default function MHidden({ width, children }) {
  21. const breakpoint = width.substring(0, 2);
  22. const hiddenUp = useMediaQuery((theme) => theme.breakpoints.up(breakpoint));
  23. const hiddenDown = useMediaQuery((theme) => theme.breakpoints.down(breakpoint));
  24. if (width.includes('Down')) {
  25. return hiddenDown ? null : children;
  26. }
  27. if (width.includes('Up')) {
  28. return hiddenUp ? null : children;
  29. }
  30. return null;
  31. }