import React from "react"; import clsx from "clsx"; import { makeStyles } from "@material-ui/core/styles"; import { List, Drawer, Divider, ListItem, ListItemIcon, ListItemText, } from "@material-ui/core"; import AccountCircleIcon from "@material-ui/icons/AccountCircle"; import DashboardIcon from "@material-ui/icons/Dashboard"; import LocalAtmIcon from "@material-ui/icons/LocalAtm"; import AllInboxIcon from "@material-ui/icons/AllInbox"; import SettingsIcon from "@material-ui/icons/Settings"; import AccountBoxIcon from "@material-ui/icons/AccountBox"; import CreditCardIcon from "@material-ui/icons/CreditCard"; import Power from "@material-ui/icons/Power"; import ROUTES from "../constants/routes"; const drawerWidth = 240; const useStyles = makeStyles((theme) => ({ drawer: { width: drawerWidth, flexShrink: 0, whiteSpace: "nowrap", }, drawerOpen: { width: drawerWidth, transition: theme.transitions.create("width", { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }, drawerClose: { transition: theme.transitions.create("width", { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), overflowX: "hidden", width: theme.spacing(7) + 1, [theme.breakpoints.up("sm")]: { width: theme.spacing(9) + 1, }, }, toolbar: { display: "flex", alignItems: "center", paddingTop: theme.spacing(0, 1), paddingBottom: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, }, })); const Sidebar = ({ open, history }) => { const classes = useStyles(); const Navigate = (url) => { history.push(url); }; return ( <Drawer variant="permanent" className={clsx(classes.drawer, { [classes.drawerOpen]: open, [classes.drawerClose]: !open, })} classes={{ paper: clsx({ [classes.drawerOpen]: open, [classes.drawerClose]: !open, }), }} > <div className={classes.toolbar}> <ListItem button> <ListItemIcon> <AccountCircleIcon /> </ListItemIcon> <ListItemText>User</ListItemText> </ListItem> </div> <Divider /> <List> <ListItem button onClick={() => Navigate(ROUTES.DASHBOARD)}> <ListItemIcon> <DashboardIcon /> </ListItemIcon> <ListItemText>Dashboard</ListItemText> </ListItem> <ListItem button onClick={() => Navigate(ROUTES.INVENTORY)}> <ListItemIcon> <AllInboxIcon /> </ListItemIcon> <ListItemText>Inventory</ListItemText> </ListItem> <ListItem button onClick={() => Navigate(ROUTES.SALES)}> <ListItemIcon> <LocalAtmIcon /> </ListItemIcon> <ListItemText>Sales</ListItemText> </ListItem> <ListItem button> <ListItemIcon> <CreditCardIcon /> </ListItemIcon> <ListItemText>Expenses</ListItemText> </ListItem> <ListItem button onClick={() => Navigate(ROUTES.CARDS)}> <ListItemIcon> <AccountBoxIcon /> </ListItemIcon> <ListItemText>Accounts</ListItemText> </ListItem> </List> <Divider /> <List> <ListItem button> <ListItemIcon> <Power /> </ListItemIcon> <ListItemText>Integrations</ListItemText> </ListItem> <ListItem button> <ListItemIcon> <SettingsIcon /> </ListItemIcon> <ListItemText>Settings</ListItemText> </ListItem> </List> </Drawer> ); }; export default Sidebar;