Merge remote-tracking branch 'origin/main' into 19051-handle-quotes-in-search
[arvados-workbench2.git] / src / views / search-results-panel / search-results-panel.tsx
index 8b01ca3f410e03d0e7f29d8cf5a50ef5ac75497a..0902f15bdcca963a77369b970ff0e2d959cb31f0 100644 (file)
@@ -4,36 +4,45 @@
 
 import { Dispatch } from "redux";
 import { connect } from "react-redux";
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { SearchResultsPanelActionProps, SearchResultsPanelDataProps } from './search-results-panel-view';
-import { RootState } from '~/store/store';
-import { openContextMenu, resourceKindToContextMenuKind } from '~/store/context-menu/context-menu-actions';
-import { ResourceKind } from '~/models/resource';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { SearchResultsPanelView } from '~/views/search-results-panel/search-results-panel-view';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { openSearchResultsContextMenu } from 'store/context-menu/context-menu-actions';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { SearchResultsPanelView } from 'views/search-results-panel/search-results-panel-view';
+import { RootState } from 'store/store';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
+import { User } from "models/user";
+import { Config } from 'common/config';
+import { Session } from "models/session";
 
-const mapStateToProps = (state: RootState): SearchResultsPanelDataProps => ({
-    data: {
-        inTrash: false,
-        dataFrom: '',
-        dataTo: '',
-        saveQuery: false,
-        searchQuery: ''
-    }
-});
+export interface SearchResultsPanelDataProps {
+    data: SearchBarAdvancedFormData;
+    user: User;
+    sessions: Session[];
+    remoteHostsConfig: { [key: string]: Config };
+    localCluster: string;
+}
+
+export interface SearchResultsPanelActionProps {
+    onItemClick: (item: string) => void;
+    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: string) => void;
+    onDialogOpen: (ownerUuid: string) => void;
+    onItemDoubleClick: (item: string) => void;
+}
+
+export type SearchResultsPanelProps = SearchResultsPanelDataProps & SearchResultsPanelActionProps;
+
+const mapStateToProps = (rootState: RootState) => {
+    return {
+        user: rootState.auth.user,
+        sessions: rootState.auth.sessions,
+        remoteHostsConfig: rootState.auth.remoteHostsConfig,
+        localCluster: rootState.auth.localCluster,
+    };
+};
 
 const mapDispatchToProps = (dispatch: Dispatch): SearchResultsPanelActionProps => ({
     onContextMenu: (event, resourceUuid) => {
-        const kind = resourceKindToContextMenuKind(resourceUuid);
-        if (kind) {
-            dispatch<any>(openContextMenu(event, {
-                name: '',
-                uuid: resourceUuid,
-                ownerUuid: '',
-                kind: ResourceKind.NONE,
-                menuKind: kind
-            }));
-        }
+        dispatch<any>(openSearchResultsContextMenu(event, resourceUuid));
     },
     onDialogOpen: (ownerUuid: string) => { return; },
     onItemClick: (resourceUuid: string) => {
@@ -44,4 +53,4 @@ const mapDispatchToProps = (dispatch: Dispatch): SearchResultsPanelActionProps =
     }
 });
 
-export const SearchResultsPanel = connect(mapStateToProps, mapDispatchToProps)(SearchResultsPanelView);
\ No newline at end of file
+export const SearchResultsPanel = connect(mapStateToProps, mapDispatchToProps)(SearchResultsPanelView);