// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import { Dispatch } from "redux"; import { connect } from "react-redux"; import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions'; import { SubprocessPanelRoot, SubprocessPanelActionProps, SubprocessPanelDataProps } from '~/views/subprocess-panel/subprocess-panel-root'; import { RootState } from "~/store/store"; import { navigateTo } from "~/store/navigation/navigation-action"; import { loadDetailsPanel } from "~/store/details-panel/details-panel-action"; import { getProcess } from "~/store/processes/process"; const mapDispatchToProps = (dispatch: Dispatch): SubprocessPanelActionProps => ({ onContextMenu: (event, resourceUuid, resources) => { const process = getProcess(resourceUuid)(resources); if (process) { dispatch(openProcessContextMenu(event, process)); } }, onItemClick: (uuid: string) => { dispatch(loadDetailsPanel(uuid)); }, onItemDoubleClick: uuid => { dispatch(navigateTo(uuid)); } }); const mapStateToProps = (state: RootState): SubprocessPanelDataProps => ({ resources: state.resources }); export const SubprocessPanel = connect(mapStateToProps, mapDispatchToProps)(SubprocessPanelRoot);