feat(ui) - assist separate live filters
This commit is contained in:
parent
b957bb0622
commit
35d9f8a244
2 changed files with 18 additions and 5 deletions
|
|
@ -4,7 +4,7 @@ import { fetchListType, saveType, editType, initType, removeType } from './funcT
|
|||
import { createItemInListUpdater, mergeReducers, success, array } from './funcTools/tools';
|
||||
import { createEdit, createInit } from './funcTools/crud';
|
||||
import { createRequestReducer } from './funcTools/request';
|
||||
import { addElementToFiltersMap } from 'Types/filter/newFilter';
|
||||
import { addElementToFiltersMap, addElementToLiveFiltersMap } from 'Types/filter/newFilter';
|
||||
import { FilterCategory } from '../types/filter/filterType';
|
||||
import { refreshFilterOptions } from './search'
|
||||
|
||||
|
|
@ -38,6 +38,7 @@ const reducer = (state = initialState, action = {}) => {
|
|||
case FETCH_SUCCESS:
|
||||
action.data.forEach(item => {
|
||||
addElementToFiltersMap(FilterCategory.METADATA, item.key);
|
||||
addElementToLiveFiltersMap(FilterCategory.METADATA, item.key);
|
||||
});
|
||||
return state.set('list', List(action.data).map(CustomField)) //.concat(defaultMeta))
|
||||
case FETCH_SOURCES_SUCCESS:
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import filterOptions, { countries, platformOptions } from 'App/constants';
|
|||
import { capitalize } from 'App/utils';
|
||||
|
||||
const countryOptions = Object.keys(countries).map(i => ({ text: countries[i], value: i }));
|
||||
const containsFilters = [{ key: 'contains', text: 'contains', value: 'contains' }]
|
||||
|
||||
const ISSUE_OPTIONS = [
|
||||
{ text: 'Click Rage', value: 'click_rage' },
|
||||
|
|
@ -57,7 +58,7 @@ export const filtersMap = {
|
|||
}
|
||||
|
||||
export const liveFiltersMap = {
|
||||
[FilterKey.USERID]: { key: FilterKey.USERID, type: FilterType.STRING, category: FilterCategory.USER, label: 'User Id', operator: 'contains', operatorOptions: [{ key: 'contains', text: 'contains', value: 'contains' }], icon: 'filters/userid', isLive: true },
|
||||
[FilterKey.USERID]: { key: FilterKey.USERID, type: FilterType.STRING, category: FilterCategory.USER, label: 'User Id', operator: 'contains', operatorOptions: containsFilters, icon: 'filters/userid', isLive: true },
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -80,6 +81,17 @@ export const addElementToFiltersMap = (
|
|||
filtersMap[key] = { key, type, category, label: capitalize(key), operator: operator, operatorOptions, icon, isLive: true }
|
||||
}
|
||||
|
||||
export const addElementToLiveFiltersMap = (
|
||||
category = FilterCategory.METADATA,
|
||||
key,
|
||||
type = FilterType.STRING,
|
||||
operator = 'contains',
|
||||
operatorOptions = containsFilters,
|
||||
icon = 'filters/metadata'
|
||||
) => {
|
||||
liveFiltersMap[key] = { key, type, category, label: capitalize(key), operator: operator, operatorOptions, icon, isLive: true }
|
||||
}
|
||||
|
||||
export default Record({
|
||||
timestamp: 0,
|
||||
key: '',
|
||||
|
|
@ -129,10 +141,10 @@ export default Record({
|
|||
* @param {*} filtersMap
|
||||
* @returns
|
||||
*/
|
||||
export const generateFilterOptions = (filtersMap) => {
|
||||
export const generateFilterOptions = (map) => {
|
||||
const _options = {};
|
||||
Object.keys(filtersMap).forEach(key => {
|
||||
const filter = filtersMap[key];
|
||||
Object.keys(map).forEach(key => {
|
||||
const filter = map[key];
|
||||
if (_options.hasOwnProperty(filter.category)) {
|
||||
_options[filter.category].push(filter);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue