Merge branch 'master' into 15088-merge-account
[arvados-workbench2.git] / src / views / search-results-panel / search-results-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 { navigateTo } from '~/store/navigation/navigation-action';
8 import { SearchResultsPanelActionProps } from './search-results-panel-view';
9 import { openContextMenu, resourceKindToContextMenuKind } from '~/store/context-menu/context-menu-actions';
10 import { ResourceKind } from '~/models/resource';
11 import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
12 import { SearchResultsPanelView } from '~/views/search-results-panel/search-results-panel-view';
13 import { RootState } from '~/store/store';
14
15 const mapStateToProps = (rootState: RootState) => {
16     return {
17         user: rootState.auth.user,
18         sessions: rootState.auth.sessions,
19         remoteHostsConfig: rootState.auth.remoteHostsConfig,
20         localCluster: rootState.auth.localCluster,
21     };
22 };
23
24 const mapDispatchToProps = (dispatch: Dispatch): SearchResultsPanelActionProps => ({
25     onContextMenu: (event, resourceUuid) => {
26         const kind = resourceKindToContextMenuKind(resourceUuid);
27         if (kind) {
28             dispatch<any>(openContextMenu(event, {
29                 name: '',
30                 uuid: resourceUuid,
31                 ownerUuid: '',
32                 kind: ResourceKind.NONE,
33                 menuKind: kind
34             }));
35         }
36         dispatch<any>(loadDetailsPanel(resourceUuid));
37     },
38     onDialogOpen: (ownerUuid: string) => { return; },
39     onItemClick: (resourceUuid: string) => {
40         dispatch<any>(loadDetailsPanel(resourceUuid));
41     },
42     onItemDoubleClick: uuid => {
43         dispatch<any>(navigateTo(uuid));
44     }
45 });
46
47 export const SearchResultsPanel = connect(mapStateToProps, mapDispatchToProps)(SearchResultsPanelView);