Merge branch 'master' into 14504-users-admin-panel
[arvados-workbench2.git] / src / store / search-bar / search-bar-reducer.ts
index 1c16d99905a9deb02b13d1d23d50c619de5a68e3..8508c05d044cee1668ad04272f69fb427342b828 100644 (file)
@@ -70,10 +70,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 +124,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
     });