fix(ui) - filters meta

This commit is contained in:
Shekar Siri 2022-03-10 19:56:29 +01:00
parent 83bcf97312
commit 2f54c76d35
3 changed files with 13 additions and 5 deletions

View file

@ -8,15 +8,16 @@ import { connect } from 'react-redux';
interface Props {
clearSearch: () => void;
appliedFilter: any;
optionsReady: boolean;
}
const MainSearchBar = (props: Props) => {
const { appliedFilter } = props;
const { appliedFilter, optionsReady } = props;
const hasFilters = appliedFilter && appliedFilter.filters && appliedFilter.filters.size > 0;
return (
<div className="flex items-center">
<div style={{ width: "60%", marginRight: "10px"}}><SessionSearchField /></div>
<div className="flex items-center" style={{ width: "40%"}}>
<SavedSearch />
{optionsReady && <SavedSearch /> }
<Popup
trigger={
<Button
@ -39,4 +40,5 @@ const MainSearchBar = (props: Props) => {
}
export default connect(state => ({
appliedFilter: state.getIn(['search', 'instance']),
optionsReady: state.getIn(['customFields', 'optionsReady'])
}), { clearSearch })(MainSearchBar);

View file

@ -31,6 +31,7 @@ const initialState = Map({
list: List(),
instance: CustomField(),
sources: List(),
optionsReady: false
});
const reducer = (state = initialState, action = {}) => {
@ -40,7 +41,8 @@ const reducer = (state = initialState, action = {}) => {
addElementToFiltersMap(FilterCategory.METADATA, item.key);
addElementToLiveFiltersMap(FilterCategory.METADATA, item.key);
});
return state.set('list', List(action.data).map(CustomField)) //.concat(defaultMeta))
return state.set('list', List(action.data).map(CustomField))
.set('optionsReady', true) //.concat(defaultMeta))
case FETCH_SOURCES_SUCCESS:
return state.set('sources', List(action.data.map(({ value, ...item}) => ({label: value, key: value, ...item}))).map(CustomField))
case SAVE_SUCCESS:

View file

@ -6,7 +6,7 @@ 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' }]
export const metaFilter = { key: FilterKey.METADATA, type: FilterType.MULTIPLE, category: FilterCategory.METADATA, label: 'Metadata', operator: 'is', operatorOptions: filterOptions.stringOperators, icon: 'filters/metadata', isEvent: true };
export const metaFilter = { key: FilterKey.METADATA, type: FilterType.MULTIPLE, category: FilterCategory.METADATA, label: 'Metadata', operator: 'is', operatorOptions: filterOptions.stringOperators, icon: 'filters/metadata' };
export const filtersMap = {
// EVENTS
[FilterKey.CLICK]: { key: FilterKey.CLICK, type: FilterType.MULTIPLE, category: FilterCategory.INTERACTIONS, label: 'Click', operator: 'on', operatorOptions: filterOptions.targetOperators, icon: 'filters/click', isEvent: true },
@ -133,7 +133,11 @@ export default Record({
})
_filter = subFilterMap[type]
} else {
_filter = (type === FilterKey.METADATA) ? metaFilter : filtersMap[type];
if (type === FilterKey.METADATA) {
_filter = filtersMap[filter.source];
} else {
_filter = filtersMap[type];
}
}
return {
...filter,