fix(ui) - search - clone default values
This commit is contained in:
parent
9430792039
commit
cc0e2aa788
3 changed files with 28 additions and 17 deletions
|
|
@ -70,7 +70,7 @@ function FilterModal(props: Props) {
|
|||
const showSearchList = isMainSearch && searchQuery.length > 0;
|
||||
|
||||
const onFilterSearchClick = (filter: any) => {
|
||||
const _filter = filtersMap[filter.type];
|
||||
const _filter = {...filtersMap[filter.type]};
|
||||
_filter.value = [filter.value];
|
||||
onFilterClick(_filter);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { createRequestReducer } from './funcTools/request';
|
|||
import { mergeReducers, success } from './funcTools/tools';
|
||||
import Filter from 'Types/filter';
|
||||
import { liveFiltersMap } from 'Types/filter/newFilter';
|
||||
import { filterMap, checkFilterValue, hasFilterApplied } from './search';
|
||||
import { filterMap, checkFilterValue, hasFilterApplied, getAppliedFilterIndex } from './search';
|
||||
import Session from 'Types/session';
|
||||
|
||||
const name = "liveSearch";
|
||||
|
|
@ -111,8 +111,18 @@ export const clearSearch = () => (dispatch, getState) => {
|
|||
export const addFilter = (filter) => (dispatch, getState) => {
|
||||
filter.value = checkFilterValue(filter.value);
|
||||
const instance = getState().getIn([ 'liveSearch', 'instance']);
|
||||
const filters = instance.get('filters');
|
||||
|
||||
if (hasFilterApplied(instance.filters, filter)) {
|
||||
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)));
|
||||
// const index = instance.filters.findIndex(f => f.key === filter.key);
|
||||
// const oldFilter = instance.filters.get(index);
|
||||
// oldFilter.value = oldFilter.value.concat(filter.value);
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ export const hasFilterApplied = (filters, filter) => {
|
|||
return !filter.isEvent && filters.some((f) => f.key === filter.key);
|
||||
};
|
||||
|
||||
const getAppliedFilterIndex = (filters, filterToFind) => {
|
||||
export const getAppliedFilterIndex = (filters, filterToFind) => {
|
||||
if (!filterToFind.isEvent) {
|
||||
return filters.findIndex((filter) => filter.key === filterToFind.key);
|
||||
}
|
||||
|
|
@ -357,37 +357,38 @@ const getAppliedFilterIndex = (filters, filterToFind) => {
|
|||
};
|
||||
|
||||
export const addFilter = (filter) => (dispatch, getState) => {
|
||||
filter.value = checkFilterValue(filter.value);
|
||||
filter.filters = filter.filters
|
||||
const instance = getState().getIn(['search', 'instance']);
|
||||
const filters = instance.get('filters');
|
||||
const index = getAppliedFilterIndex(filters, filter);
|
||||
|
||||
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']);
|
||||
const filters = instance.get('filters');
|
||||
const index = getAppliedFilterIndex(filters, filter);
|
||||
|
||||
if (index !== -1) {
|
||||
if (index !== -1) {
|
||||
const oldFilter = filters.get(index);
|
||||
const updatedFilter = {
|
||||
...oldFilter,
|
||||
value: oldFilter.value.concat(filter.value),
|
||||
...oldFilter,
|
||||
value: oldFilter.value.concat(filter.value),
|
||||
};
|
||||
|
||||
const updatedFilters = filters.set(index, updatedFilter);
|
||||
return dispatch(edit(instance.set('filters', updatedFilters)));
|
||||
} else {
|
||||
} else {
|
||||
const updatedFilters = filters.push(filter);
|
||||
return dispatch(edit(instance.set('filters', updatedFilters)));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const addFilterByKeyAndValue =
|
||||
(key, value, operator = undefined, sourceOperator = undefined, source = undefined) =>
|
||||
(dispatch, getState) => {
|
||||
let defaultFilter = filtersMap[key];
|
||||
let defaultFilter = {...filtersMap[key]};
|
||||
defaultFilter.value = value;
|
||||
if (operator) {
|
||||
defaultFilter.operator = operator;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue