// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import List from "@material-ui/core/List/List"; import ListItem from "@material-ui/core/ListItem/ListItem"; import { ReactElement } from "react"; import Collapse from "@material-ui/core/Collapse/Collapse"; export interface TreeItem { data: T; id: string; open: boolean; active: boolean; items?: Array>; } interface TreeProps { items?: Array>; render: (item: TreeItem) => ReactElement<{}>; toggleItem: (id: string) => any; level?: number; } function colorArrows(open: boolean, color: string){ return } class Tree extends React.Component, {}> { render(): ReactElement { const level = this.props.level ? this.props.level : 0; return {this.props.items && this.props.items.map((it: TreeItem, idx: number) =>
this.props.toggleItem(it.id)} style={{paddingLeft: (level + 1) * 15, paddingBottom: '3px', paddingTop: '3px'}}> {it.active ? colorArrows(it.open, "#4285F6") : colorArrows(it.open, "#333")} {this.props.render(it)} {it.items && it.items.length > 0 && }
)}
} } export default Tree;