/** ========================================================= * Material Dashboard 2 PRO React - v2.0.0 ========================================================= * Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react * Copyright 2021 Creative Tim (https://www.creative-tim.com) Coded by www.creative-tim.com ========================================================= * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ import { Fragment } from 'react'; // prop-types is a library for typechecking of props. import PropTypes from 'prop-types'; // react-router components import { Link } from 'react-router-dom'; // @mui material components import Grid from '@mui/material/Grid'; import MenuItem from '@mui/material/MenuItem'; import Divider from '@mui/material/Divider'; // Material Dashboard 2 PRO React components import MDBox from 'components/MDBox'; // Material Dashboard 2 PRO React example components import DefaultNavbarCategory from 'examples/Navbars/DefaultNavbar/DefaultNavbarCategory'; import DefaultNavbarMenu from 'examples/Navbars/DefaultNavbar/DefaultNavbarMenu'; // Material Dashboard 2 PRO React context import { useMaterialUIController } from 'context'; function PagesMenu({ routes, open, close, mobileMenu }) { const [controller] = useMaterialUIController(); const { darkMode } = controller; const renderPagesMenuRoute = (routeName) => routes.map( ({ key, name, icon, collapse }) => key === routeName && ( {collapse.map(({ key: collapseKey, route, name: collapseName }) => ( {collapseName} ))} ) ); const renderMenuContent = ( darkMode ? background.card : white.main }} > {renderPagesMenuRoute('dashboards')} {renderPagesMenuRoute('users')} {renderPagesMenuRoute('extra')} {renderPagesMenuRoute('projects')} {renderPagesMenuRoute('account')} {renderPagesMenuRoute('profile')} ); return mobileMenu ? ( renderMenuContent ) : ( {renderMenuContent} ); } // Setting default values for the props of PagesMenu PagesMenu.defaultProps = { mobileMenu: false, open: false, close: false }; // Typechecking props for the PagesMenu PagesMenu.propTypes = { routes: PropTypes.arrayOf(PropTypes.object).isRequired, open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]), close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), mobileMenu: PropTypes.bool }; export default PagesMenu;