Skip to content

Commit 5ec9c71

Browse files
adjust the groups param
1 parent 229ed9a commit 5ec9c71

File tree

6 files changed

+18
-10
lines changed

6 files changed

+18
-10
lines changed

__tests__/shared/components/challenge-listing/Filters/FiltersPanel.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ const mockDatas = [{
1717
communityName: 'Sample community',
1818
},
1919
],
20-
filterState: {},
20+
filterState: {
21+
groups: []
22+
},
2123
hidden: true,
2224
onSaveFilter,
2325
selectCommunity,
@@ -34,7 +36,9 @@ const mockDatas = [{
3436
communityName: 'Sample community',
3537
},
3638
],
37-
filterState: {},
39+
filterState: {
40+
groups: []
41+
},
3842
hidden: false,
3943
onSaveFilter,
4044
selectCommunity,

__tests__/shared/components/challenge-listing/Filters/__snapshots__/FiltersPanel.jsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ exports[`Matches shallow shapshot 1`] = `
9696
}
9797
selectRef={[Function]}
9898
simpleValue={true}
99+
value=""
99100
valueRenderer={[Function]}
100101
/>
101102
</div>
@@ -291,6 +292,7 @@ exports[`Matches shallow shapshot 2`] = `
291292
}
292293
selectRef={[Function]}
293294
simpleValue={true}
295+
value=""
294296
valueRenderer={[Function]}
295297
/>
296298
</div>

src/shared/components/challenge-listing/Filters/FiltersPanel/index.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,11 +241,11 @@ export default function FiltersPanel({
241241
// onChange={selectCommunity}
242242
onChange={(value) => {
243243
const group = value;
244-
setFilterState({ ..._.clone(filterState), group });
244+
setFilterState({ ..._.clone(filterState), groups: group === '' ? [] : [group] });
245245
}}
246246
options={communityOps}
247247
simpleValue
248-
value={filterState.group}
248+
value={filterState.groups.length === 0 ? '' : filterState.groups[0]}
249249
valueRenderer={option => (
250250
<span styleName="active-community">
251251
{option.name}
@@ -355,7 +355,7 @@ export default function FiltersPanel({
355355
name: '',
356356
tags: [],
357357
types: [],
358-
group: '',
358+
groups: [],
359359
startDateStart: null,
360360
endDateEnd: null,
361361
});

src/shared/reducers/challenge-listing/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ function onSetFilter(state, { payload }) {
400400
* do it very carefuly (many params are not validated). */
401401
const filter = _.pickBy(_.pick(
402402
payload,
403-
['tags', 'types', 'name', 'startDateStart', 'endDateEnd', 'group'],
403+
['tags', 'types', 'name', 'startDateStart', 'endDateEnd', 'groups'],
404404
), value => (!_.isArray(value) && value && value !== '') || (_.isArray(value) && value.length > 0));
405405
// if (_.isPlainObject(filter.tags)) {
406406
// filter.tags = _.values(filter.tags);
@@ -802,7 +802,7 @@ function create(initialState) {
802802
name: '',
803803
tags: [],
804804
types: [],
805-
group: '',
805+
groups: [],
806806
startDateStart: null,
807807
endDateEnd: null,
808808
},

src/shared/utils/challenge-listing/buckets.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,8 @@ export function filterChanged(filter, prevFilter) {
174174
|| (filter.name !== prevFilter.name)
175175
|| (filter.startDateStart !== prevFilter.startDateStart)
176176
|| (filter.endDateEnd !== prevFilter.endDateEnd)
177-
|| (filter.group !== prevFilter.group)
177+
// eslint-disable-next-line max-len
178+
|| (filter.groups.length !== prevFilter.groups.length || filter.groups[0] !== prevFilter.groups[0])
178179
|| _.filter(filter.tags, val => _.indexOf(prevFilter.tags, val) < 0).length > 0
179180
|| _.filter(prevFilter.tags, val => _.indexOf(filter.tags, val) < 0).length > 0
180181
|| _.filter(filter.types, val => _.indexOf(prevFilter.types, val) < 0).length > 0

src/shared/utils/url.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ export function updateQuery(update) {
4646
* set as undefined in the objects to be merged, rather than deleting such
4747
* fields in the target object. */
4848
_.forIn(update, (value, key) => {
49-
if (_.isArray(value)) filterArray.push(value.map(item => `${key}[]=${item}`).join('&'));
50-
else if (_.isUndefined(value) || _.isEmpty(value)) delete query[key];
49+
if (_.isArray(value) && value.length > 0) filterArray.push(value.map(item => `${key}[]=${item}`).join('&'));
50+
// eslint-disable-next-line max-len
51+
else if (_.isUndefined(value) || _.isEmpty(value) || (_.isArray(value) && value.length === 0)) delete query[key];
5152
else query += `${key}=${value}`;
5253
});
5354
if (query === '?') {

0 commit comments

Comments
 (0)