diff --git a/opentech/static_src/src/javascript/apply/submission-filters.js b/opentech/static_src/src/javascript/apply/submission-filters.js index 5fa7a7f618902c50ab76cb2939b5b927e1fd2715..6f706f686a7e67044e890099e23aea99d8aeb9e6 100644 --- a/opentech/static_src/src/javascript/apply/submission-filters.js +++ b/opentech/static_src/src/javascript/apply/submission-filters.js @@ -18,17 +18,15 @@ const urlParams = new URLSearchParams(window.location.search); + const persistedParams = ['sort', 'query']; + // check if the page has a query string and keep filters open if so on desktop - const minimumNumberParams = 1 + urlParams.has('query') ? 1 : 0; + const minimumNumberParams = persistedParams.reduce( + (count, param) => count + urlParams.has(param) ? 1 : 0, + 1 + ); - // check for a search query param - if (urlParams.has('query')) { - if ([...urlParams].length > minimumNumberParams && $(window).width() > 1024) { - $body.addClass(filterOpenClass); - updateButtonText(); - } - } - else if ([...urlParams].length >= 1 && $(window).width() > 1024) { + if ([...urlParams].length > minimumNumberParams && $(window).width() > 1024) { $body.addClass(filterOpenClass); updateButtonText(); } @@ -84,7 +82,9 @@ // redirect to submissions home to clear filters function handleClearFilters() { - window.location.href = window.location.href.split('?')[0] + '?query=' + urlParams.get('query'); + const query = persistedParams.reduce( + (query, param) => query + (urlParams.get(param) ? `&${param}=${urlParams.get(param)}` : ''), '?'); + window.location.href = window.location.href.split('?')[0] + query; } // toggle filters button wording