- const { classes, render, toggleItemOpen, items, toggleItemActive, onContextMenu } = this.props;
- const { list, loader, toggableIconContainer } = classes;
- return <List component="div" className={list}>
- {items && items.map((it: TreeItem<T>, idx: number) =>
- <div key={`item/${level}/${idx}`}>
- <ListItem button className={list} style={{ paddingLeft: (level + 1) * 20 }}
- onClick={() => toggleItemActive(it.id, it.status)}
- onContextMenu={this.handleRowContextMenu(it)}>
+ const { classes, render, items, toggleItemActive, disableRipple, currentItemUuid, useRadioButtons } = this.props;
+ const { list, listItem, loader, toggableIconContainer, renderContainer, childItem, active } = classes;
+ const showSelection = typeof this.props.showSelection === 'function'
+ ? this.props.showSelection
+ : () => this.props.showSelection ? true : false;
+
+ const { levelIndentation = 20, itemRightPadding = 20 } = this.props;
+
+ const flatItems = (items || [])
+ .map(parentItem => ({
+ ...parentItem,
+ items: flatTree(2, parentItem.items || []),
+ }));
+
+ return <List className={list}>
+ {flatItems && flatItems.map((it: TreeItem<T>, idx: number) =>
+ <div key={`item/${level}/${it.id}`}>
+ <ListItem button className={listItem}
+ style={{
+ paddingLeft: (level + 1) * levelIndentation,
+ paddingRight: itemRightPadding,
+ }}
+ disableRipple={disableRipple}
+ onClick={event => toggleItemActive(event, it)}
+ selected={showSelection(it) && it.id === currentItemUuid}
+ onContextMenu={(event) => this.props.onContextMenu(event, it)}>