change(ui) - search to add or values from search field

This commit is contained in:
Shekar Siri 2023-03-31 14:13:48 +02:00
parent 2895795e8f
commit c38dd87f3f

View file

@ -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)));
}
};