Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-14 15:09:14 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-14 15:09:14 +0300
commit49089d4fb1f5c17328ac61c955d95a68c6d4d545 (patch)
tree309d97ce6cbc1b22935dd0e11cc72abd767ffcf3 /app/assets/javascripts/filtered_search
parent846a84f2e9d6149b00c63ccae2850421f6766bac (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/filtered_search')
-rw-r--r--app/assets/javascripts/filtered_search/constants.js2
-rw-r--r--app/assets/javascripts/filtered_search/stores/recent_searches_store.js12
2 files changed, 11 insertions, 3 deletions
diff --git a/app/assets/javascripts/filtered_search/constants.js b/app/assets/javascripts/filtered_search/constants.js
index 7e7a2588951..0b9fe969da1 100644
--- a/app/assets/javascripts/filtered_search/constants.js
+++ b/app/assets/javascripts/filtered_search/constants.js
@@ -9,3 +9,5 @@ export const FILTER_TYPE = {
none: 'none',
any: 'any',
};
+
+export const MAX_HISTORY_SIZE = 5;
diff --git a/app/assets/javascripts/filtered_search/stores/recent_searches_store.js b/app/assets/javascripts/filtered_search/stores/recent_searches_store.js
index cdbc9ec84bd..423f123f71c 100644
--- a/app/assets/javascripts/filtered_search/stores/recent_searches_store.js
+++ b/app/assets/javascripts/filtered_search/stores/recent_searches_store.js
@@ -1,4 +1,6 @@
-import { uniq } from 'lodash';
+import { uniqWith, isEqual } from 'lodash';
+
+import { MAX_HISTORY_SIZE } from '../constants';
class RecentSearchesStore {
constructor(initialState = {}, allowedKeys) {
@@ -17,8 +19,12 @@ class RecentSearchesStore {
}
setRecentSearches(searches = []) {
- const trimmedSearches = searches.map(search => search.trim());
- this.state.recentSearches = uniq(trimmedSearches).slice(0, 5);
+ const trimmedSearches = searches.map(search =>
+ typeof search === 'string' ? search.trim() : search,
+ );
+
+ // Do object equality check to remove duplicates.
+ this.state.recentSearches = uniqWith(trimmedSearches, isEqual).slice(0, MAX_HISTORY_SIZE);
return this.state.recentSearches;
}
}