Merge commit '3b735dd9330e0989f51a76771c3303031154154e' into 21158-wf-page-list
[arvados.git] / services / workbench2 / src / views / workflow-panel / workflow-processes-panel.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { Dispatch } from "redux";
6 import { connect } from "react-redux";
7 import { openProcessContextMenu } from "store/context-menu/context-menu-actions";
8 import { WorkflowProcessesPanelRoot, WorkflowProcessesPanelActionProps, WorkflowProcessesPanelDataProps } from "views/workflow-panel/workflow-processes-panel-root";
9 import { RootState } from "store/store";
10 import { navigateTo } from "store/navigation/navigation-action";
11 import { loadDetailsPanel } from "store/details-panel/details-panel-action";
12 import { getProcess } from "store/processes/process";
13
14 const mapDispatchToProps = (dispatch: Dispatch): WorkflowProcessesPanelActionProps => ({
15     onContextMenu: (event, resourceUuid, resources) => {
16         const process = getProcess(resourceUuid)(resources);
17         if (process) {
18             dispatch<any>(openProcessContextMenu(event, process));
19         }
20     },
21     onItemClick: (uuid: string) => {
22         dispatch<any>(loadDetailsPanel(uuid));
23     },
24     onItemDoubleClick: uuid => {
25         dispatch<any>(navigateTo(uuid));
26     },
27 });
28
29 const mapStateToProps = (state: RootState): WorkflowProcessesPanelDataProps => ({
30     resources: state.resources,
31 });
32
33 export const WorkflowProcessesPanel = connect(mapStateToProps, mapDispatchToProps)(WorkflowProcessesPanelRoot);