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);
+ }
}
);