import { push } from 'react-router-redux';
import projectActions from "../../store/project/project-action";
import ProjectTree from '../../components/project-tree/project-tree';
- import { TreeItem } from "../../components/tree/tree";
+ import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
import { Project } from "../../models/project";
import { projectService } from '../../services/services';
+import DataExplorer from '../data-explorer/data-explorer';
const drawerWidth = 240;
onMenuItemClick: (menuItem: NavMenuItem) => menuItem.action()
};
- 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}`));
- });
+ toggleProjectTreeItem = (itemId: string, status: TreeItemStatus) => {
+ if (status === TreeItemStatus.Loaded) {
- this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
++ this.openProjectItem(itemId);
+ } else {
- this.props.dispatch<any>(projectService.getProjectList(itemId)).then(() => {
- this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
- });
++ this.props.dispatch<any>(projectService.getProjectList(itemId)).then(() => this.openProjectItem(itemId));
+ }
+ }
+
++ openProjectItem = (itemId: string) => {
++ this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
++ this.props.dispatch(push(`/project/${itemId}`));
+ }
+
render() {
const { classes, user } = this.props;
return (
/>
</div>
{user &&
- <Drawer
- variant="permanent"
- classes={{
- paper: classes.drawerPaper,
- }}>
- <div className={classes.toolbar}/>
- <ProjectTree
- projects={this.props.projects}
- toggleProjectTreeItem={this.toggleProjectTreeItem}/>
- </Drawer>}
+ <Drawer
+ variant="permanent"
+ classes={{
+ paper: classes.drawerPaper,
+ }}>
+ <div className={classes.toolbar} />
+ <ProjectTree
+ projects={this.props.projects}
+ toggleProjectTreeItem={this.toggleProjectTreeItem} />
+ </Drawer>}
<main className={classes.content}>
- <div className={classes.toolbar} />
<div className={classes.toolbar} />
<Switch>
- <Route path="/project/:name" component={DataExplorer}/>
- <Route path="/project/:name" component={ProjectList} />
++ <Route path="/project/:name" component={DataExplorer} />
</Switch>
</main>
</div>