diff --git a/frontend/app/components/shared/MainSearchBar/MainSearchBar.tsx b/frontend/app/components/shared/MainSearchBar/MainSearchBar.tsx
index 0ed764339..e6cdbd00c 100644
--- a/frontend/app/components/shared/MainSearchBar/MainSearchBar.tsx
+++ b/frontend/app/components/shared/MainSearchBar/MainSearchBar.tsx
@@ -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 (
-
+ {optionsReady &&
}
{
}
export default connect(state => ({
appliedFilter: state.getIn(['search', 'instance']),
+ optionsReady: state.getIn(['customFields', 'optionsReady'])
}), { clearSearch })(MainSearchBar);
\ No newline at end of file
diff --git a/frontend/app/duck/customField.js b/frontend/app/duck/customField.js
index ad93c21c6..9a8fdcc0e 100644
--- a/frontend/app/duck/customField.js
+++ b/frontend/app/duck/customField.js
@@ -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:
diff --git a/frontend/app/types/filter/newFilter.js b/frontend/app/types/filter/newFilter.js
index ced303078..6963643f7 100644
--- a/frontend/app/types/filter/newFilter.js
+++ b/frontend/app/types/filter/newFilter.js
@@ -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,