diff options
Diffstat (limited to 'app/assets/javascripts/search/store/utils.js')
-rw-r--r-- | app/assets/javascripts/search/store/utils.js | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/assets/javascripts/search/store/utils.js b/app/assets/javascripts/search/store/utils.js index b00b9bb0f2e..6b56ff0b5e5 100644 --- a/app/assets/javascripts/search/store/utils.js +++ b/app/assets/javascripts/search/store/utils.js @@ -1,5 +1,5 @@ import AccessorUtilities from '../../lib/utils/accessor'; -import { MAX_FREQUENT_ITEMS, MAX_FREQUENCY } from './constants'; +import { MAX_FREQUENT_ITEMS, MAX_FREQUENCY, SIDEBAR_PARAMS } from './constants'; function extractKeys(object, keyList) { return Object.fromEntries(keyList.map((key) => [key, object[key]])); @@ -80,3 +80,13 @@ export const mergeById = (inflatedData, storedData) => { return { ...stored, ...data }; }); }; + +export const isSidebarDirty = (currentQuery, urlQuery) => { + return SIDEBAR_PARAMS.some((param) => { + // userAddParam ensures we don't get a false dirty from null !== undefined + const userAddedParam = !urlQuery[param] && currentQuery[param]; + const userChangedExistingParam = urlQuery[param] && urlQuery[param] !== currentQuery[param]; + + return userAddedParam || userChangedExistingParam; + }); +}; |