X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/a960b30fd5da0619e5029e67712b2a2778e4b591..6faff5910b3e7bdaf47ab5ede7cf8094a1b4adb9:/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 1c16d999..4f663eeb 100644 --- a/src/store/search-bar/search-bar-reducer.ts +++ b/src/store/search-bar/search-bar-reducer.ts @@ -2,7 +2,11 @@ // // 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'; @@ -45,7 +49,7 @@ const makeSelectedItem = (id: string, query?: string): SearchBarSelectedItem => const makeQueryList = (recentQueries: string[], savedQueries: SearchBarAdvanceFormData[]) => { 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); }; @@ -70,10 +74,7 @@ export const searchBarReducer = (state = initialState, action: SearchBarActions) }), SET_SEARCH_VALUE: searchValue => ({ ...state, - searchValue, - selectedItem: makeSelectedItem(state.searchValue === state.selectedItem.id - ? searchValue - : state.selectedItem.id) + searchValue }), SET_SAVED_QUERIES: savedQueries => ({ ...state, savedQueries }), SET_RECENT_QUERIES: recentQueries => ({ ...state, recentQueries }), @@ -127,5 +128,20 @@ export const searchBarReducer = (state = initialState, action: SearchBarActions) selectedItem }; }, + SELECT_FIRST_ITEM: () => { + let selectedItem = state.selectedItem; + if (state.currentView === SearchView.AUTOCOMPLETE) { + selectedItem = makeSelectedItem(state.searchValue); + } else if (state.currentView === SearchView.BASIC) { + const items = makeQueryList(state.recentQueries, state.savedQueries); + if (items.length > 0) { + selectedItem = items[0]; + } + } + return { + ...state, + selectedItem + }; + }, default: () => state });