From d1dd322910160323245664b836d9c2f69e068d85 Mon Sep 17 00:00:00 2001 From: Lisa Knox Date: Thu, 2 Nov 2023 09:38:41 -0400 Subject: [PATCH] 19302: fixed duplicated expand Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- src/components/tree/tree.tsx | 13 +++++++++++-- .../side-panel-tree/side-panel-tree-actions.ts | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx index 9a2c0b4844..d275cc0bed 100644 --- a/src/components/tree/tree.tsx +++ b/src/components/tree/tree.tsx @@ -14,6 +14,7 @@ import { ArvadosTheme } from 'common/custom-theme'; import { SidePanelRightArrowIcon } from '../icon/icon'; import { ResourceKind } from 'models/resource'; import { GroupClass } from 'models/group'; +import { SidePanelTreeCategory } from 'store/side-panel-tree/side-panel-tree-actions'; type CssRules = 'list' | 'listItem' @@ -100,6 +101,7 @@ export enum TreeItemStatus { export interface TreeItem { data: T; + depth?: number; id: string; open: boolean; active: boolean; @@ -156,6 +158,10 @@ const getActionAndId = (event: any, initAction: string | undefined = undefined) return [action, id]; }; +const isInFavoritesTree = (item: TreeItem): boolean => { + return item.id === SidePanelTreeCategory.FAVORITES || item.id === SidePanelTreeCategory.PUBLIC_FAVORITES; +} + interface FlatTreeProps { it: TreeItem; levelIndentation: number; @@ -241,11 +247,11 @@ const FlatTree = (props: FlatTreeProps) => .map((item: any) =>
- + {!isInFavoritesTree(props.it) && {props.getProperArrowAnimation(item.status, item.items!)} - + } {props.showSelection(item) && !props.useRadioButtons && {items && items.map((it: TreeItem, idx: number) => { + if (isInFavoritesTree(it) && it.open === true && it.items && it.items.length) { + it = { ...it, items: it.items.filter(item => item.depth && item.depth < 3) } + } return
.addAsc('name') .getOrder() }; + const { items } = await services.projectService.list(params); + dispatch(treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: projectUuid, pickerId: SIDE_PANEL_TREE, @@ -228,7 +230,7 @@ export const toggleSidePanelTreeItemCollapse = (id: string) => if (node && node.status === TreeNodeStatus.INITIAL) { await dispatch(loadSidePanelTreeProjects(node.id)); } - dispatch(treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id, pickerId: SIDE_PANEL_TREE })); + dispatch(treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id, pickerId: SIDE_PANEL_TREE })); }; export const expandSidePanelTreeItem = (id: string) => -- 2.30.2