Update: Sidebar standalone item
This commit is contained in:
@@ -31,7 +31,7 @@ import { item, itemContent, itemArrow } from 'components/Sidenav/styles/sidenavI
|
|||||||
// Material Dashboard 2 PRO React contexts
|
// Material Dashboard 2 PRO React contexts
|
||||||
import { useMaterialUIController } from 'context';
|
import { useMaterialUIController } from 'context';
|
||||||
|
|
||||||
function SidenavItem({ color, name, active, nested, children, open, ...rest }) {
|
function SidenavItem({ color, name, active, nested, children, open, icon, ...rest }) {
|
||||||
const [controller] = useMaterialUIController();
|
const [controller] = useMaterialUIController();
|
||||||
const { miniSidenav, transparentSidenav, whiteSidenav, darkMode } = controller;
|
const { miniSidenav, transparentSidenav, whiteSidenav, darkMode } = controller;
|
||||||
|
|
||||||
@@ -56,6 +56,7 @@ function SidenavItem({ color, name, active, nested, children, open, ...rest }) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
{icon && <MDBox sx={{ marginLeft: '-1.8em', marginRight: '0.6em' }}>{icon}</MDBox>}
|
||||||
<ListItemText primary={name} />
|
<ListItemText primary={name} />
|
||||||
{children && (
|
{children && (
|
||||||
<Icon
|
<Icon
|
||||||
@@ -94,7 +95,8 @@ SidenavItem.propTypes = {
|
|||||||
active: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
active: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
||||||
nested: PropTypes.bool,
|
nested: PropTypes.bool,
|
||||||
children: PropTypes.node,
|
children: PropTypes.node,
|
||||||
open: PropTypes.bool
|
open: PropTypes.bool,
|
||||||
|
icon: PropTypes.any
|
||||||
};
|
};
|
||||||
|
|
||||||
export default SidenavItem;
|
export default SidenavItem;
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ function Sidenav({ color, brandName, routes, ...rest }) {
|
|||||||
|
|
||||||
// Render all the routes from the routes.js (All the visible items on the Sidenav)
|
// Render all the routes from the routes.js (All the visible items on the Sidenav)
|
||||||
const renderRoutes = routes.map(
|
const renderRoutes = routes.map(
|
||||||
({ type, name, icon, title, collapse, noCollapse, key, href, hide }) => {
|
({ type, name, icon, title, collapse, noCollapse, key, href, hide, route }) => {
|
||||||
let returnValue;
|
let returnValue;
|
||||||
|
|
||||||
if (hide) return null;
|
if (hide) return null;
|
||||||
@@ -223,6 +223,12 @@ function Sidenav({ color, brandName, routes, ...rest }) {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
} else if (type === 'single') {
|
||||||
|
returnValue = (
|
||||||
|
<NavLink to={route} key={key} sx={{ textDecoration: 'none' }}>
|
||||||
|
<SidenavItem color={color} name={name} active={key === itemName} icon={icon} />
|
||||||
|
</NavLink>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
|
|||||||
@@ -90,18 +90,12 @@ const protectedRoutes = [
|
|||||||
// },
|
// },
|
||||||
// { type: 'divider', key: 'divider-0' },
|
// { type: 'divider', key: 'divider-0' },
|
||||||
{
|
{
|
||||||
type: 'collapse',
|
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
key: 'Home',
|
key: 'home',
|
||||||
icon: <HomeIcon width={24} height={24} color="white" />,
|
icon: <HomeIcon width={24} height={24} color="white" />,
|
||||||
collapse: [
|
route: '/home',
|
||||||
{
|
type: 'single',
|
||||||
name: 'Home',
|
component: <HomepageScreen />
|
||||||
key: 'home',
|
|
||||||
route: '/home',
|
|
||||||
component: <HomepageScreen />
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'collapse',
|
type: 'collapse',
|
||||||
|
|||||||
Reference in New Issue
Block a user