X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/cf48e928d4d334b0b6434529d7619c616da319f2..73da4aae95f9186c71533e3c26cecce23f52fc02:/src/views/workbench/workbench.tsx diff --git a/src/views/workbench/workbench.tsx b/src/views/workbench/workbench.tsx index a92e486e..56436026 100644 --- a/src/views/workbench/workbench.tsx +++ b/src/views/workbench/workbench.tsx @@ -10,13 +10,20 @@ import AppBar from '@material-ui/core/AppBar'; 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 Tree, { TreeItem } 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 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 = (theme: Theme) => ({ root: { @@ -32,6 +39,9 @@ const styles: StyleRulesCallback = (theme: Theme) => ({ zIndex: theme.zIndex.drawer + 1, backgroundColor: '#692498' }, + active: { + color: '#4285F6', + }, drawerPaper: { position: 'relative', width: drawerWidth, @@ -42,11 +52,23 @@ const styles: StyleRulesCallback = (theme: Theme) => ({ 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 }); interface WorkbenchProps { - projects: Project[] + projects: Array>; + toggleProjectTreeItem: (id: string) => any; } interface WorkbenchState { @@ -54,8 +76,7 @@ interface WorkbenchState { class Workbench extends React.Component, WorkbenchState> { render() { - const {classes} = this.props; - + const {classes, projects} = this.props; return (
@@ -71,23 +92,36 @@ class Workbench extends React.Component, W paper: classes.drawerPaper, }}>
- - {p.name} - }/> +
+ ) => +
{project.data.icon}
+
{project.data.name}} />
+
} + /> +
- Hello new workbench! + + + Hello new workbench! + + +
); } } -export default connect( +export default connect( (state: RootState) => ({ projects: state.projects - }) + }), { + toggleProjectTreeItem: (id: string) => projectActions.toggleProjectTreeItem(id) + } )( withStyles(styles)(Workbench) );