import { actions as projectActions } from "../../store/project-action";
import ListItemText from "@material-ui/core/ListItemText/ListItemText";
+import ListItemIcon from '@material-ui/core/ListItemIcon';
const drawerWidth = 240;
-type CssRules = 'root' | 'appBar' | 'drawerPaper' | 'content' | 'toolbar';
+type CssRules = 'root' | 'appBar' | 'active' | 'drawerPaper' | 'content' | 'row' | 'treeContainer' | 'toolbar';
const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
root: {
zIndex: theme.zIndex.drawer + 1,
backgroundColor: '#692498'
},
+ active: {
+ color: '#4285F6',
+ },
drawerPaper: {
position: 'relative',
width: drawerWidth,
padding: theme.spacing.unit * 3,
minWidth: 0,
},
+ row: {
+ display: 'flex',
+ alignItems: 'center',
+ },
+ treeContainer: {
+ position: 'absolute',
+ overflowX: 'visible',
+ marginTop: '80px',
+ minWidth: drawerWidth,
+ whiteSpace: 'nowrap',
+ },
toolbar: theme.mixins.toolbar
});
class Workbench extends React.Component<WorkbenchProps & WithStyles<CssRules>, WorkbenchState> {
render() {
- const {classes} = this.props;
+ const {classes, projects} = this.props;
return (
<div className={classes.root}>
<AppBar position="absolute" className={classes.appBar}>
paper: classes.drawerPaper,
}}>
<div className={classes.toolbar}/>
- <Tree items={this.props.projects}
- toggleItem={this.props.toggleProjectTreeItem}
- render={(p: Project) => <ListItemText primary={p.name}/>}
- />
+ <div className={classes.treeContainer}>
+ <Tree items={projects}
+ toggleItem={this.props.toggleProjectTreeItem}
+ render={(project: TreeItem<Project>) => <span className={classes.row}>
+ <div><ListItemIcon className={project.active ? classes.active : ''}>{project.data.icon}</ListItemIcon></div>
+ <div><ListItemText primary={<Typography className={project.active ? classes.active : ''}>{project.data.name}</Typography>} /></div>
+ </span>}
+ />
+ </div>
</Drawer>
<main className={classes.content}>
<div className={classes.toolbar}/>