import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import { connect, DispatchProp } from "react-redux";
-import Tree from "../../components/tree/tree";
-import { Project } from "../../models/project";
import ProjectList from "../../components/project-list/project-list";
import { Route, Switch } from "react-router";
import { Link } from "react-router-dom";
import { User } from "../../models/user";
import Grid from "@material-ui/core/Grid/Grid";
import { RootState } from "../../store/store";
+import projectActions from "../../store/project/project-action"
-import { actions as projectActions } from "../../store/project-action";
-import ProjectTree, { WorkbenchProps } from '../../components/project-tree/project-tree';
+import ProjectTree from '../../components/project-tree/project-tree';
+import { TreeItem } from "../../components/tree/tree";
+import { Project } from "../../models/project";
+import { projectService } from '../../services/services';
+import ProjectExplorer from '../project-explorer/project-explorer';
+import { push } from 'react-router-redux';
const drawerWidth = 240;
});
interface WorkbenchDataProps {
- projects: Project[];
+ projects: Array<TreeItem<Project>>;
user?: User;
}
});
};
+ toggleProjectTreeItem = (itemId: string) => {
+ this.props.dispatch<any>(projectService.getProjectList(itemId)).then(() => {
+ this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
+ this.props.dispatch(push(`/project/${itemId}`))
+ });
+ };
+
render() {
const {classes, user} = this.props;
return (
paper: classes.drawerPaper,
}}>
<div className={classes.toolbar}/>
- <ProjectTree
+ <ProjectTree
projects={this.props.projects}
- toggleProjectTreeItem={this.props.toggleProjectTreeItem}/>
+ toggleProjectTreeItem={this.toggleProjectTreeItem}/>
</Drawer>}
<main className={classes.content}>
<div className={classes.toolbar}/>
<Switch>
- <Route path="/project/:name" component={ProjectList}/>
+ <Route path="/project/:name" component={ProjectExplorer}/>
</Switch>
</main>
</div>
(state: RootState) => ({
projects: state.projects,
user: state.auth.user
- }){
- toggleProjectTreeItem: (id: string) => projectActions.toggleProjectTreeItem(id)
- }
+ })
)(
withStyles(styles)(Workbench)
);