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,