/**
=========================================================
* 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 }) => (
))}
)
);
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;