// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import { connect } from 'react-redux'; import { RootState } from '~/store/store'; import { Dispatch } from 'redux'; import { goToView, searchData, deleteSavedQuery, saveRecentQuery, loadRecentQueries, saveQuery, openSearchView, closeSearchView } from '~/store/search-bar/search-bar-actions'; import { SearchBarView } from '~/views-components/search-bar/search-bar-view'; import { SearchBarAdvanceFormData } from '~/models/search-bar'; const mapStateToProps = ({ searchBar }: RootState) => { return { searchValue: searchBar.searchValue, currentView: searchBar.currentView, isPopoverOpen: searchBar.open, searchResults: searchBar.searchResults, savedQueries: searchBar.savedQueries }; }; const mapDispatchToProps = (dispatch: Dispatch) => ({ onSearch: (valueSearch: string) => dispatch(searchData(valueSearch)), onSetView: (currentView: string) => dispatch(goToView(currentView)), closeView: () => dispatch(closeSearchView()), saveRecentQuery: (query: string) => dispatch(saveRecentQuery(query)), loadRecentQueries: () => dispatch(loadRecentQueries()), saveQuery: (data: SearchBarAdvanceFormData) => dispatch(saveQuery(data)), deleteSavedQuery: (id: number) => dispatch(deleteSavedQuery(id)), openSearchView: () => dispatch(openSearchView()) }); export const SearchBar = connect(mapStateToProps, mapDispatchToProps)(SearchBarView);