import { Box, Divider, Drawer, Grid, List, Link as MUILink, Typography } from '@material-ui/core' import { Theme, createStyles, makeStyles } from '@material-ui/core/styles' import { BeeModes } from '@ethersphere/bee-js' import { ReactElement, useContext } from 'react' import { Link } from 'react-router-dom' import FilesIcon from 'remixicon-react/ArrowUpDownLineIcon' import FileManagerIcon from 'remixicon-react/FolderOpenLineIcon' import DocsIcon from 'remixicon-react/BookOpenLineIcon' import ExternalLinkIcon from 'remixicon-react/ExternalLinkLineIcon' import GithubIcon from 'remixicon-react/GithubFillIcon' import HomeIcon from 'remixicon-react/Home3LineIcon' import SettingsIcon from 'remixicon-react/Settings2LineIcon' import AccountIcon from 'remixicon-react/Wallet3LineIcon' import DashboardLogo from '../assets/dashboard-logo.svg' import DesktopLogo from '../assets/desktop-logo.svg' import { BEE_DOCS_HOST, GITHUB_BEE_DASHBOARD_URL } from '../constants' import { Context as BeeContext } from '../providers/Bee' import { Context as SettingsContext } from '../providers/Settings' import { ROUTES } from '../routes' import SideBarItem from './SideBarItem' import SideBarStatus from './SideBarStatus' const drawerWidth = 300 const useStyles = makeStyles((theme: Theme) => createStyles({ root: { flexWrap: 'nowrap', minHeight: '100vh', paddingTop: theme.spacing(8), paddingBottom: theme.spacing(8), }, drawer: { width: drawerWidth, flexShrink: 0, }, drawerPaper: { width: drawerWidth, backgroundColor: '#212121', zIndex: 988, }, logo: { marginLeft: theme.spacing(8), marginRight: theme.spacing(8), }, icon: { height: theme.spacing(4), }, divider: { backgroundColor: '#2c2c2c', marginLeft: theme.spacing(4), marginRight: theme.spacing(4), }, link: { color: '#9f9f9f', textDecoration: 'none', '&:hover': { textDecoration: 'none', // https://github.com/mui-org/material-ui/issues/22543 '@media (hover: none)': { textDecoration: 'none', }, }, }, }), ) export default function SideBar(): ReactElement { const classes = useStyles() const { isDesktop } = useContext(SettingsContext) const { nodeInfo } = useContext(BeeContext) const navBarItems = [ { label: 'Info', path: ROUTES.INFO, icon: HomeIcon, }, { label: 'Files', path: nodeInfo?.beeMode === BeeModes.ULTRA_LIGHT ? ROUTES.DOWNLOAD : ROUTES.UPLOAD, icon: FilesIcon, pathMatcherSubstring: '/files/', }, { label: 'File Manager', path: ROUTES.FILEMANAGER, icon: FileManagerIcon, pathMatcherSubstring: '/filemanager/', }, { label: 'Account', path: ROUTES.ACCOUNT_WALLET, icon: AccountIcon, pathMatcherSubstring: '/account/', }, { label: 'Settings', path: ROUTES.SETTINGS, icon: SettingsIcon, }, ] return ( swarm {navBarItems.map(p => ( } path={p.path} pathMatcherSubstring={p.pathMatcherSubstring} label={p.label} /> ))} } iconEnd={} label={Docs} /> } iconEnd={} label={GitHub} /> Redeem gift code ) }