Update: Sidebar standalone item

This commit is contained in:
Llewellyn Dsouza
2022-02-26 23:28:19 +05:30
parent 28ecd84bb8
commit 1596dc1a39
3 changed files with 15 additions and 13 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -89,19 +89,13 @@ const protectedRoutes = [
// ] // ]
// }, // },
// { type: 'divider', key: 'divider-0' }, // { type: 'divider', key: 'divider-0' },
{
type: 'collapse',
name: 'Home',
key: 'Home',
icon: <HomeIcon width={24} height={24} color="white" />,
collapse: [
{ {
name: 'Home', name: 'Home',
key: 'home', key: 'home',
icon: <HomeIcon width={24} height={24} color="white" />,
route: '/home', route: '/home',
type: 'single',
component: <HomepageScreen /> component: <HomepageScreen />
}
]
}, },
{ {
type: 'collapse', type: 'collapse',