X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/6e44781d01db889030cc5f7819aa7f15fe837e19..1a1007b664c6158c905a2fbfa998e7a5737ab7e1:/src/views-components/project-tree/project-tree.tsx diff --git a/src/views-components/project-tree/project-tree.tsx b/src/views-components/project-tree/project-tree.tsx index e4179987..411e6dd7 100644 --- a/src/views-components/project-tree/project-tree.tsx +++ b/src/views-components/project-tree/project-tree.tsx @@ -5,64 +5,43 @@ import * as React from 'react'; import { ReactElement } from 'react'; import { StyleRulesCallback, Theme, WithStyles, withStyles } from '@material-ui/core/styles'; -import ListItemText from "@material-ui/core/ListItemText/ListItemText"; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import Typography from '@material-ui/core/Typography'; - import Tree, { TreeItem, TreeItemStatus } from '../../components/tree/tree'; -import { Project } from '../../models/project'; - -type CssRules = 'active' | 'listItemText' | 'row' | 'treeContainer'; - -const styles: StyleRulesCallback = (theme: Theme) => ({ - active: { - color: '#4285F6', - }, - listItemText: { - padding: '0px', - }, - row: { - display: 'flex', - alignItems: 'center', - marginLeft: '20px', - }, - treeContainer: { - marginTop: '37px', - overflowX: 'visible', - overflowY: 'auto', - minWidth: '240px', - whiteSpace: 'nowrap', - } -}); +import { ProjectResource } from '../../models/project'; +import { ProjectIcon } from '../../components/icon/icon'; +import { ArvadosTheme } from '../../common/custom-theme'; +import SingleListItem from '../../components/single-list-item/single-list-item'; export interface ProjectTreeProps { - projects: Array>; - toggleProjectTreeItem: (itemId: string) => void; + projects: Array>; + toggleOpen: (id: string, status: TreeItemStatus) => void; + toggleActive: (id: string, status: TreeItemStatus) => void; + onContextMenu: (event: React.MouseEvent, item: TreeItem) => void; } class ProjectTree extends React.Component> { render(): ReactElement { - const {classes, projects} = this.props; - const {active, listItemText, row, treeContainer} = classes; + const { classes, projects, toggleOpen, toggleActive, onContextMenu } = this.props; return ( -
+
, level: number) => - - - {level === 0 ? : } - - - {project.data.name} - - }/> - + onContextMenu={onContextMenu} + toggleItemOpen={toggleOpen} + toggleItemActive={toggleActive} + render={ + (project: TreeItem) => + }/>
); } } +type CssRules = 'root'; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + root: { + marginLeft: `${theme.spacing.unit * 1.5}px`, + } +}); + export default withStyles(styles)(ProjectTree);