X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/2856ebc64777ef4c5e84a35c4fe90795fb8e1ca8..be7d8afed27347d0b55818e64fce3e036e5300d8:/src/views-components/search-bar/search-bar-view.tsx diff --git a/src/views-components/search-bar/search-bar-view.tsx b/src/views-components/search-bar/search-bar-view.tsx index e5e52b31..28408347 100644 --- a/src/views-components/search-bar/search-bar-view.tsx +++ b/src/views-components/search-bar/search-bar-view.tsx @@ -2,7 +2,8 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; +import { compose } from 'redux'; import { IconButton, Paper, @@ -14,25 +15,27 @@ import { } from '@material-ui/core'; import SearchIcon from '@material-ui/icons/Search'; import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { SearchView } from '~/store/search-bar/search-bar-reducer'; +import { ArvadosTheme } from 'common/custom-theme'; +import { SearchView } from 'store/search-bar/search-bar-reducer'; import { SearchBarBasicView, SearchBarBasicViewDataProps, SearchBarBasicViewActionProps -} from '~/views-components/search-bar/search-bar-basic-view'; +} from 'views-components/search-bar/search-bar-basic-view'; import { SearchBarAutocompleteView, SearchBarAutocompleteViewDataProps, SearchBarAutocompleteViewActionProps -} from '~/views-components/search-bar/search-bar-autocomplete-view'; +} from 'views-components/search-bar/search-bar-autocomplete-view'; import { SearchBarAdvancedView, SearchBarAdvancedViewDataProps, SearchBarAdvancedViewActionProps -} from '~/views-components/search-bar/search-bar-advanced-view'; -import { KEY_CODE_DOWN, KEY_CODE_ESC, KEY_CODE_UP, KEY_ENTER } from "~/common/codes"; +} from 'views-components/search-bar/search-bar-advanced-view'; +import { KEY_CODE_DOWN, KEY_CODE_ESC, KEY_CODE_UP, KEY_ENTER } from "common/codes"; import { debounce } from 'debounce'; +import { Vocabulary } from 'models/vocabulary'; +import { connectVocabulary } from '../resource-properties-form/property-field-common'; type CssRules = 'container' | 'containerSearchViewOpened' | 'input' | 'view'; @@ -72,6 +75,7 @@ interface SearchBarViewDataProps { currentView: string; isPopoverOpen: boolean; debounce?: number; + vocabulary?: Vocabulary; } export type SearchBarActionProps = SearchBarViewActionProps @@ -88,7 +92,7 @@ interface SearchBarViewActionProps { loadRecentQueries: () => string[]; moveUp: () => void; moveDown: () => void; - setAdvancedDataFromSearchValue: (search: string) => void; + setAdvancedDataFromSearchValue: (search: string, vocabulary?: Vocabulary) => void; } type SearchBarViewProps = SearchBarDataProps & SearchBarActionProps & WithStyles; @@ -124,10 +128,10 @@ const handleKeyDown = (e: React.KeyboardEvent, props: SearchBarViewProps) => { const handleInputClick = (e: React.MouseEvent, props: SearchBarViewProps) => { if (props.searchValue) { props.onSetView(SearchView.AUTOCOMPLETE); - props.openSearchView(); } else { - props.closeView(); + props.onSetView(SearchView.BASIC); } + props.openSearchView(); }; const handleDropdownClick = (e: React.MouseEvent, props: SearchBarViewProps) => { @@ -135,12 +139,12 @@ const handleDropdownClick = (e: React.MouseEvent, props: SearchBarViewProps) => if (props.isPopoverOpen && props.currentView === SearchView.ADVANCED) { props.closeView(); } else { - props.setAdvancedDataFromSearchValue(props.searchValue); + props.setAdvancedDataFromSearchValue(props.searchValue, props.vocabulary); props.onSetView(SearchView.ADVANCED); } }; -export const SearchBarView = withStyles(styles)( +export const SearchBarView = compose(connectVocabulary, withStyles(styles))( class extends React.Component { debouncedSearch = debounce(() => { @@ -173,6 +177,7 @@ export const SearchBarView = withStyles(styles)(