import PropTypes from 'prop-types'; import { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; // material-ui import { useTheme } from '@mui/material/styles'; import { Box, Card, Divider, Grid, Typography } from '@mui/material'; import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; // project imports import config from 'config'; import { gridSpacing } from 'store/constant'; // assets import { IconTallymark1 } from '@tabler/icons-react'; import AccountTreeTwoToneIcon from '@mui/icons-material/AccountTreeTwoTone'; import HomeIcon from '@mui/icons-material/Home'; import HomeTwoToneIcon from '@mui/icons-material/HomeTwoTone'; const linkSX = { display: 'flex', color: 'grey.900', textDecoration: 'none', alignContent: 'center', alignItems: 'center' }; // ==============================|| BREADCRUMBS ||============================== // const Breadcrumbs = ({ card, divider, icon, icons, maxItems, navigation, rightAlign, separator, title, titleBottom, ...others }) => { const theme = useTheme(); const iconStyle = { marginRight: theme.spacing(0.75), marginTop: `-${theme.spacing(0.25)}`, width: '1rem', height: '1rem', color: theme.palette.secondary.main }; const [main, setMain] = useState(); const [item, setItem] = useState(); // set active item state const getCollapse = (menu) => { if (menu.children) { menu.children.filter((collapse) => { if (collapse.type && collapse.type === 'collapse') { getCollapse(collapse); } else if (collapse.type && collapse.type === 'item') { if (document.location.pathname === config.basename + collapse.url) { setMain(menu); setItem(collapse); } } return false; }); } }; useEffect(() => { navigation?.items?.map((menu) => { if (menu.type && menu.type === 'group') { getCollapse(menu); } return false; }); }); // item separator const SeparatorIcon = separator; const separatorIcon = separator ? : ; let mainContent; let itemContent; let breadcrumbContent = ; let itemTitle = ''; let CollapseIcon; let ItemIcon; // collapse item if (main && main.type === 'collapse') { CollapseIcon = main.icon ? main.icon : AccountTreeTwoToneIcon; mainContent = ( {icons && } {main.title} ); } // items if (item && item.type === 'item') { itemTitle = item.title; ItemIcon = item.icon ? item.icon : AccountTreeTwoToneIcon; itemContent = ( {icons && } {itemTitle} ); // main if (item.breadcrumbs !== false) { breadcrumbContent = ( {title && !titleBottom && ( {item.title} )} {icons && } {icon && } {!icon && 'Dashboard'} {mainContent} {itemContent} {title && titleBottom && ( {item.title} )} {card === false && divider !== false && } ); } } return breadcrumbContent; }; Breadcrumbs.propTypes = { card: PropTypes.bool, divider: PropTypes.bool, icon: PropTypes.bool, icons: PropTypes.bool, maxItems: PropTypes.number, navigation: PropTypes.object, rightAlign: PropTypes.bool, separator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), title: PropTypes.bool, titleBottom: PropTypes.bool }; export default Breadcrumbs;