import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import { connect } from "react-redux";
-import Tree from "../../components/tree/tree";
-import { Project } from "../../models/project";
import { RootState } from "../../store/root-reducer";
+import ProjectList from "../../components/project-list/project-list";
+import { Route, Switch } from "react-router";
+import { Link } from "react-router-dom";
+
+import { actions as projectActions } from "../../store/project-action";
+import ProjectTree, { WorkbenchProps } from '../../components/project-tree/project-tree';
const drawerWidth = 240;
toolbar: theme.mixins.toolbar
});
-interface WorkbenchProps {
- projects: Project[]
-}
-
-interface WorkbenchState {
-}
-
-class Workbench extends React.Component<WorkbenchProps & WithStyles<CssRules>, WorkbenchState> {
+class Workbench extends React.Component<WorkbenchProps & WithStyles<CssRules>> {
render() {
- const {classes} = this.props;
-
+ const { classes } = this.props;
return (
<div className={classes.root}>
<AppBar position="absolute" className={classes.appBar}>
<Toolbar>
<Typography variant="title" color="inherit" noWrap>
- Arvados<br/>Workbench 2
+ Arvados<br />Workbench 2
</Typography>
</Toolbar>
</AppBar>
classes={{
paper: classes.drawerPaper,
}}>
- <div className={classes.toolbar}/>
- <Tree items={this.props.projects} render={(p: Project) =>
- <span>{p.name}</span>
- }/>
+ <div className={classes.toolbar} />
+ <ProjectTree
+ projects={this.props.projects}
+ toggleProjectTreeItem={this.props.toggleProjectTreeItem} />
</Drawer>
<main className={classes.content}>
- <div className={classes.toolbar}/>
- <Typography noWrap>Hello new workbench!</Typography>
+ <div className={classes.toolbar} />
+ <Switch>
+ <Route exact path="/">
+ <Typography noWrap>Hello new workbench!</Typography>
+ </Route>
+ <Route path="/project/:name" component={ProjectList} />
+ </Switch>
</main>
</div>
);
}
}
-export default connect<WorkbenchProps>(
+export default connect(
(state: RootState) => ({
projects: state.projects
- })
+ }), {
+ toggleProjectTreeItem: (id: string) => projectActions.toggleProjectTreeItem(id)
+ }
)(
withStyles(styles)(Workbench)
);