change(ui) - search to add or values from search field
This commit is contained in:
parent
2895795e8f
commit
c38dd87f3f
1 changed files with 27 additions and 9 deletions
|
|
@ -349,20 +349,38 @@ export const hasFilterApplied = (filters, filter) => {
|
|||
return !filter.isEvent && filters.some((f) => f.key === filter.key);
|
||||
};
|
||||
|
||||
const getAppliedFilterIndex = (filters, filterToFind) => {
|
||||
if (!filterToFind.isEvent) {
|
||||
return filters.findIndex((filter) => filter.key === filterToFind.key);
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
export const addFilter = (filter) => (dispatch, getState) => {
|
||||
filter.value = checkFilterValue(filter.value);
|
||||
filter.filters = filter.filters
|
||||
? filter.filters.map((subFilter) => ({
|
||||
...subFilter,
|
||||
value: checkFilterValue(subFilter.value),
|
||||
}))
|
||||
: null;
|
||||
const instance = getState().getIn(['search', 'instance']);
|
||||
? filter.filters.map((subFilter) => ({
|
||||
...subFilter,
|
||||
value: checkFilterValue(subFilter.value),
|
||||
}))
|
||||
: null;
|
||||
|
||||
if (hasFilterApplied(instance.filters, filter)) {
|
||||
const instance = getState().getIn(['search', 'instance']);
|
||||
const filters = instance.get('filters');
|
||||
const index = getAppliedFilterIndex(filters, filter);
|
||||
|
||||
if (index !== -1) {
|
||||
const oldFilter = filters.get(index);
|
||||
const updatedFilter = {
|
||||
...oldFilter,
|
||||
value: oldFilter.value.concat(filter.value),
|
||||
};
|
||||
|
||||
const updatedFilters = filters.set(index, updatedFilter);
|
||||
return dispatch(edit(instance.set('filters', updatedFilters)));
|
||||
} else {
|
||||
const filters = instance.filters.push(filter);
|
||||
return dispatch(edit(instance.set('filters', filters)));
|
||||
const updatedFilters = filters.push(filter);
|
||||
return dispatch(edit(instance.set('filters', updatedFilters)));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue