X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/1bd016d1f30c72353e5e3b086dd9778b74efb516..4157d0e93444cd1d2a631e7826f8cd831863b58a:/src/components/tree/tree.tsx diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx index 26324958..c892d7d2 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); + } } );