X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8e44d7f9d688d4d42b9d76f1a3c68924e927405c..1a59e5dcc15a9a1aebfd15a08903fcb75efd2aac:/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx diff --git a/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx b/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx index d8a5d49f05..fafb05056c 100644 --- a/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx +++ b/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx @@ -5,6 +5,7 @@ import * as React from "react"; import { Dispatch } from "redux"; import { connect } from "react-redux"; +import { isEqual } from 'lodash/fp'; import { TreeItem, TreeItemStatus } from '~/components/tree/tree'; import { ProjectResource } from "~/models/project"; import { treePickerActions } from "~/store/tree-picker/tree-picker-actions"; @@ -30,6 +31,7 @@ export interface ProjectsTreePickerDataProps { rootItemIcon: IconType; showSelection?: boolean; relatedTreePickers?: string[]; + disableActivation?: string[]; loadRootItem: (item: TreeItem, pickerId: string, includeCollections?: boolean, inlcudeFiles?: boolean) => void; } @@ -43,6 +45,12 @@ const mapStateToProps = (_: any, { rootItemIcon, showSelection }: ProjectsTreePi const mapDispatchToProps = (dispatch: Dispatch, { loadRootItem, includeCollections, includeFiles, relatedTreePickers, ...props }: ProjectsTreePickerProps): PickedTreePickerProps => ({ onContextMenu: () => { return; }, toggleItemActive: (event, item, pickerId) => { + + const { disableActivation = [] } = props; + if(disableActivation.some(isEqual(item.id))){ + return; + } + dispatch(treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: item.id, pickerId, relatedTreePickers })); if (props.toggleItemActive) { props.toggleItemActive(event, item, pickerId);