From 6579001d94538fdbe970625a90b99cd4203fd5dc Mon Sep 17 00:00:00 2001 From: nqv Date: Fri, 4 Dec 2020 20:39:51 +0700 Subject: [PATCH] filter update --- src/services/challenges.js | 3 ++- src/utils/challenge/filter.js | 16 +++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/services/challenges.js b/src/services/challenges.js index 8d9268cf..bd11afed 100644 --- a/src/services/challenges.js +++ b/src/services/challenges.js @@ -174,7 +174,8 @@ class ChallengesService { filter, ) => { let res = {}; - if (_.some(filter.frontFilter.tracks, val => val)) { + if (_.some(filter.frontFilter.tracks, val => val) + && !_.isEqual(filter.frontFilter.types, [])) { const query = getFilterUrl(filter.backendFilter, filter.frontFilter); const url = `${endpoint}?${query}`; res = await this.private.apiV5.get(url).then(checkErrorV5); diff --git a/src/utils/challenge/filter.js b/src/utils/challenge/filter.js index 0728dc15..4d151429 100644 --- a/src/utils/challenge/filter.js +++ b/src/utils/challenge/filter.js @@ -106,8 +106,8 @@ function filterByRegistrationOpen(challenge, state) { * @return {Boolean} True if opp satifies the filter */ function filterByReviewOpportunityType(opp, state) { - if (!state.reviewOpportunityType) return true; - return opp.type === state.reviewOpportunityType; + if (state.reviewOpportunityTypes.length === 0) return false; + return state.reviewOpportunityTypes.includes(opp.type); } function filterByStartDate(challenge, state) { @@ -447,14 +447,16 @@ export function setEndDate(state, date) { /** * Clones the state and sets the review opportunity type. * @param {Object} state - * @param {Array} reviewOpportunityType Possible values found in utils/tc REVIEW_OPPORTUNITY_TYPES + * @param {Array} reviewOpportunityTypes Possible values found in utils/tc REVIEW_OPPORTUNITY_TYPES * @return {Object} */ -export function setReviewOpportunityType(state, reviewOpportunityType) { - if (reviewOpportunityType) return { ...state, reviewOpportunityType }; - if (!state.reviewOpportunityType) return state; +export function setReviewOpportunityType(state, reviewOpportunityTypes) { + if (reviewOpportunityTypes && reviewOpportunityTypes.length) { + return { ...state, reviewOpportunityTypes }; + } + if (!state.reviewOpportunityTypes) return state; const res = _.clone(state); - delete res.reviewOpportunityType; + delete res.reviewOpportunityTypes; return res; }