X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/1d402d5f65011e082eb9332118c4dbfe4377952f..HEAD:/src/views-components/data-explorer/data-explorer.tsx?ds=sidebyside diff --git a/src/views-components/data-explorer/data-explorer.tsx b/src/views-components/data-explorer/data-explorer.tsx index 59c389ac..2e316f68 100644 --- a/src/views-components/data-explorer/data-explorer.tsx +++ b/src/views-components/data-explorer/data-explorer.tsx @@ -9,9 +9,10 @@ import { getDataExplorer } from "store/data-explorer/data-explorer-reducer"; import { Dispatch } from "redux"; import { dataExplorerActions } from "store/data-explorer/data-explorer-action"; import { DataColumn } from "components/data-table/data-column"; -import { DataColumns } from "components/data-table/data-table"; -import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree'; +import { DataColumns, TCheckedList } from "components/data-table/data-table"; +import { DataTableFilters } from "components/data-table-filters/data-table-filters-tree"; import { LAST_REFRESH_TIMESTAMP } from "components/refresh-button/refresh-button"; +import { toggleMSToolbar, setCheckedListOnStore } from "store/multiselect/multiselect-actions"; interface Props { id: string; @@ -21,12 +22,14 @@ interface Props { extractKey?: (item: any) => React.Key; } -const mapStateToProps = (state: RootState, { id }: Props) => { - const progress = state.progressIndicator.find(p => p.id === id); - const dataExplorerState = getDataExplorer(state.dataExplorer, id); - const currentRoute = state.router.location ? state.router.location.pathname : ''; - const currentRefresh = localStorage.getItem(LAST_REFRESH_TIMESTAMP) || ''; - const currentItemUuid = currentRoute === '/workflows' ? state.properties.workflowPanelDetailsUuid : state.detailsPanel.resourceUuid; +const mapStateToProps = ({ progressIndicator, dataExplorer, router, multiselect, detailsPanel, properties}: RootState, { id }: Props) => { + const progress = progressIndicator.find(p => p.id === id); + const dataExplorerState = getDataExplorer(dataExplorer, id); + const currentRoute = router.location ? router.location.pathname : ""; + const currentRefresh = localStorage.getItem(LAST_REFRESH_TIMESTAMP) || ""; + const isDetailsResourceChecked = multiselect.checkedList[detailsPanel.resourceUuid] + const currentItemUuid = currentRoute === "/workflows" ? properties.workflowPanelDetailsUuid : isDetailsResourceChecked ? detailsPanel.resourceUuid : multiselect.selectedUuid; + const isMSToolbarVisible = multiselect.isVisible; return { ...dataExplorerState, working: !!progress?.working, @@ -34,6 +37,8 @@ const mapStateToProps = (state: RootState, { id }: Props) => { currentRoute: currentRoute, paperKey: currentRoute, currentItemUuid, + isMSToolbarVisible, + checkedList: multiselect.checkedList, }; }; @@ -71,6 +76,14 @@ const mapDispatchToProps = () => { dispatch(dataExplorerActions.SET_PAGE({ id, page })); }, + toggleMSToolbar: (isVisible: boolean) => { + dispatch(toggleMSToolbar(isVisible)); + }, + + setCheckedListOnStore: (checkedList: TCheckedList) => { + dispatch(setCheckedListOnStore(checkedList)); + }, + onRowClick, onRowDoubleClick,