import React from 'react'; import clsx from 'clsx'; import { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles'; import Divider from '@material-ui/core/Divider'; import Drawer, { DrawerProps } from '@material-ui/core/Drawer'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import HomeIcon from '@material-ui/icons/Home'; import PeopleIcon from '@material-ui/icons/People'; import DnsRoundedIcon from '@material-ui/icons/DnsRounded'; import PermMediaOutlinedIcon from '@material-ui/icons/PhotoSizeSelectActual'; import PublicIcon from '@material-ui/icons/Public'; import SettingsEthernetIcon from '@material-ui/icons/SettingsEthernet'; import SettingsInputComponentIcon from '@material-ui/icons/SettingsInputComponent'; import TimerIcon from '@material-ui/icons/Timer'; import SettingsIcon from '@material-ui/icons/Settings'; import PhonelinkSetupIcon from '@material-ui/icons/PhonelinkSetup'; import { Omit } from '@material-ui/types'; const categories = [ { id: 'Develop', children: [ { id: 'Authentication', icon: , active: true }, { id: 'Database', icon: }, { id: 'Storage', icon: }, { id: 'Hosting', icon: }, { id: 'Functions', icon: }, { id: 'ML Kit', icon: }, ], }, { id: 'Quality', children: [ { id: 'Analytics', icon: }, { id: 'Performance', icon: }, { id: 'Test Lab', icon: }, ], }, ]; const styles = (theme: Theme) => createStyles({ categoryHeader: { paddingTop: theme.spacing(2), paddingBottom: theme.spacing(2), }, categoryHeaderPrimary: { color: theme.palette.common.white, }, item: { paddingTop: 1, paddingBottom: 1, color: 'rgba(255, 255, 255, 0.7)', '&:hover,&:focus': { backgroundColor: 'rgba(255, 255, 255, 0.08)', }, }, itemCategory: { backgroundColor: '#232f3e', boxShadow: '0 -1px 0 #404854 inset', paddingTop: theme.spacing(2), paddingBottom: theme.spacing(2), }, firebase: { fontSize: 24, color: theme.palette.common.white, }, itemActiveItem: { color: '#4fc3f7', }, itemPrimary: { fontSize: 'inherit', }, itemIcon: { minWidth: 'auto', marginRight: theme.spacing(2), }, divider: { marginTop: theme.spacing(2), }, }); export interface NavigatorProps extends Omit, WithStyles {} function Navigator(props: NavigatorProps) { const { classes, ...other } = props; return ( Paperbase Project Overview {categories.map(({ id, children }) => ( {id} {children.map(({ id: childId, icon, active }) => ( {icon} {childId} ))} ))} ); } export default withStyles(styles)(Navigator);