X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6ff11e5f5dba8e02a176bbe9455ba916e8990028..a9ba50241080a83734e8aea0f230cc3fc3f3b7ca:/src/components/tree/tree.tsx diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx index 263249588b..c892d7d2c8 100644 --- a/src/components/tree/tree.tsx +++ b/src/components/tree/tree.tsx @@ -107,7 +107,7 @@ export const Tree = withStyles(styles)( onContextMenu={this.handleRowContextMenu(it)}> {it.status === TreeItemStatus.PENDING ? : null} - this.props.toggleItemOpen(it.id, it.status)} + {this.getProperArrowAnimation(it.status, it.items!)} @@ -141,7 +141,13 @@ export const Tree = withStyles(styles)( } getProperArrowAnimation = (status: string, items: Array>) => { - return status === TreeItemStatus.PENDING || (status === TreeItemStatus.LOADED && !items) ? : ; + return this.isSidePanelIconNotNeeded(status, items) ? : ; + } + + isSidePanelIconNotNeeded = (status: string, items: Array>) => { + return status === TreeItemStatus.PENDING || + (status === TreeItemStatus.LOADED && !items) || + (status === TreeItemStatus.LOADED && items && items.length === 0); } getToggableIconClassNames = (isOpen?: boolean, isActive?: boolean) => { @@ -165,5 +171,10 @@ export const Tree = withStyles(styles)( } : undefined; } + + handleToggleItemOpen = (id: string, status: TreeItemStatus) => (event: React.MouseEvent) => { + event.stopPropagation(); + this.props.toggleItemOpen(id, status); + } } );