X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/dc5cd08bad19c302d34b75b34795d5745da2eae2..c859c9d9325e2ed86d5d7b067e1209e73ee81251:/src/store/search-bar/search-bar-reducer.ts diff --git a/src/store/search-bar/search-bar-reducer.ts b/src/store/search-bar/search-bar-reducer.ts index 32b01f72..32d9305f 100644 --- a/src/store/search-bar/search-bar-reducer.ts +++ b/src/store/search-bar/search-bar-reducer.ts @@ -2,9 +2,13 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { searchBarActions, SearchBarActions } from '~/store/search-bar/search-bar-actions'; +import { + getQueryFromAdvancedData, + searchBarActions, + SearchBarActions +} from '~/store/search-bar/search-bar-actions'; import { GroupContentsResource } from '~/services/groups-service/groups-service'; -import { SearchBarAdvanceFormData } from '~/models/search-bar'; +import { SearchBarAdvancedFormData } from '~/models/search-bar'; type SearchResult = GroupContentsResource; export type SearchBarSelectedItem = { @@ -17,7 +21,7 @@ interface SearchBar { open: boolean; searchResults: SearchResult[]; searchValue: string; - savedQueries: SearchBarAdvanceFormData[]; + savedQueries: SearchBarAdvancedFormData[]; recentQueries: string[]; selectedItem: SearchBarSelectedItem; } @@ -43,9 +47,9 @@ const initialState: SearchBar = { const makeSelectedItem = (id: string, query?: string): SearchBarSelectedItem => ({ id, query: query ? query : id }); -const makeQueryList = (recentQueries: string[], savedQueries: SearchBarAdvanceFormData[]) => { +const makeQueryList = (recentQueries: string[], savedQueries: SearchBarAdvancedFormData[]) => { const recentIds = recentQueries.map((q, idx) => makeSelectedItem(`RQ-${idx}-${q}`, q)); - const savedIds = savedQueries.map((q, idx) => makeSelectedItem(`SQ-${idx}-${q.searchQuery}`, q.searchQuery)); + const savedIds = savedQueries.map((q, idx) => makeSelectedItem(`SQ-${idx}-${q.queryName}`, getQueryFromAdvancedData(q))); return recentIds.concat(savedIds); }; @@ -127,9 +131,7 @@ export const searchBarReducer = (state = initialState, action: SearchBarActions) SELECT_FIRST_ITEM: () => { let selectedItem = state.selectedItem; if (state.currentView === SearchView.AUTOCOMPLETE) { - if (state.searchResults.length > 0) { - selectedItem = makeSelectedItem(state.searchResults[0].uuid); - } + selectedItem = makeSelectedItem(state.searchValue); } else if (state.currentView === SearchView.BASIC) { const items = makeQueryList(state.recentQueries, state.savedQueries); if (items.length > 0) {