From 6f513b1b01da5299775cd64e5963a2693e0c71d7 Mon Sep 17 00:00:00 2001 From: Pawel Kowalczyk Date: Fri, 8 Jun 2018 12:38:06 +0200 Subject: [PATCH] Arrows tree component Feature #13535 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk : --- src/components/tree/tree.tsx | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx index a8cfabd0bf..c76d29f39c 100644 --- a/src/components/tree/tree.tsx +++ b/src/components/tree/tree.tsx @@ -9,12 +9,22 @@ import { StyleRulesCallback, Theme, withStyles, WithStyles } from '@material-ui/ import { ReactElement } from "react"; import Collapse from "@material-ui/core/Collapse/Collapse"; -type CssRules = 'list'; +type CssRules = 'list' | 'activeArrow' | 'arrow' | 'arrowRotate'; const styles: StyleRulesCallback = (theme: Theme) => ({ list: { paddingBottom: '3px', paddingTop: '3px', + }, + activeArrow: { + color: '#4285F6', + position: 'absolute', + }, + arrow: { + position: 'absolute', + }, + arrowRotate: { + transform: 'rotate(-90deg)', } }); @@ -33,24 +43,27 @@ interface TreeProps { level?: number; } + + class Tree extends React.Component & WithStyles, {}> { + renderArrow (items: Array> | undefined, arrowClass: string, isOpen: boolean, arrowRotation: string){ + return items && items.length > 0 ? : '' + } render(): ReactElement { const level = this.props.level ? this.props.level : 0; const {classes, render, toggleItem, items} = this.props; - return + const {list, arrow, activeArrow, arrowRotate} = classes; + return {items && items.map((it: TreeItem, idx: number) =>
- toggleItem(it.id)} className={classes.list} style={{paddingLeft: (level + 1) * 15}}> - { - it.active ? - (it.items && it.items.length > 0 ? : null) : - (it.items && it.items.length > 0 ? : null) - } + toggleItem(it.id)} className={list} style={{paddingLeft: (level + 1) * 20}}> + {it.active ? this.renderArrow(it.items, activeArrow, it.open, arrowRotate) : this.renderArrow(it.items, arrow, it.open, arrowRotate)} {render(it)} {it.items && it.items.length > 0 && - @@ -60,5 +73,5 @@ class Tree extends React.Component & WithStyles, {}> { } } - -export default withStyles(styles)(Tree); +const StyledTree = withStyles(styles)(Tree); +export default StyledTree -- 2.30.2