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' 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