1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { Dispatch } from "redux";
6 import { connect } from "react-redux";
7 import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
8 import { SubprocessPanelRoot, SubprocessPanelActionProps, SubprocessPanelDataProps } from '~/views/subprocess-panel/subprocess-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";
14 const mapDispatchToProps = (dispatch: Dispatch): SubprocessPanelActionProps => ({
15 onContextMenu: (event, resourceUuid, resources) => {
16 const process = getProcess(resourceUuid)(resources);
18 dispatch<any>(openProcessContextMenu(event, process));
21 onItemClick: (uuid: string) => {
22 dispatch<any>(loadDetailsPanel(uuid));
24 onItemDoubleClick: uuid => {
25 dispatch<any>(navigateTo(uuid));
29 const mapStateToProps = (state: RootState): SubprocessPanelDataProps => ({
30 resources: state.resources
33 export const SubprocessPanel = connect(mapStateToProps, mapDispatchToProps)(SubprocessPanelRoot);