[Uptime] Kuery Bar Filters break overview page (#56793) (#56845)

* update filter

* fix status panel not using filter group
This commit is contained in:
Shahzad 2020-02-05 15:21:29 +01:00 committed by GitHub
parent a9dc431071
commit 0ee1558bfa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 18 deletions

View file

@ -8,7 +8,16 @@ import { connect } from 'react-redux';
import { OverviewPageComponent } from '../../../pages/overview';
import { selectIndexPattern } from '../../../state/selectors';
import { AppState } from '../../../state';
import { setEsKueryString } from '../../../state/actions';
interface DispatchProps {
setEsKueryFilters: typeof setEsKueryString;
}
const mapDispatchToProps = (dispatch: any): DispatchProps => ({
setEsKueryFilters: (esFilters: string) => dispatch(setEsKueryString(esFilters)),
});
const mapStateToProps = (state: AppState) => ({ indexPattern: selectIndexPattern(state) });
export const OverviewPage = connect(mapStateToProps)(OverviewPageComponent);
export const OverviewPage = connect(mapStateToProps, mapDispatchToProps)(OverviewPageComponent);

View file

@ -6,20 +6,8 @@
import { combineFiltersAndUserSearch, stringifyKueries } from '../lib/helper';
import { esKuery } from '../../../../../../src/plugins/data/common/es_query';
import { store } from '../state';
import { setEsKueryString } from '../state/actions';
import { IIndexPattern } from '../../../../../../src/plugins/data/common/index_patterns';
const updateEsQueryForFilterGroup = (filterQueryString: string, indexPattern: IIndexPattern) => {
// Update EsQuery in Redux to be used in FilterGroup
const searchDSL: string = filterQueryString
? JSON.stringify(
esKuery.toElasticsearchQuery(esKuery.fromKueryExpression(filterQueryString), indexPattern)
)
: '';
store.dispatch(setEsKueryString(searchDSL));
};
const getKueryString = (urlFilters: string): string => {
let kueryString = '';
// We are using try/catch here because this is user entered value
@ -56,9 +44,6 @@ export const useUpdateKueryString = (
esFilters = JSON.stringify(elasticsearchQuery);
}
updateEsQueryForFilterGroup(filterQueryString, indexPattern);
return [esFilters];
} catch (err) {
return [urlFilters, err];

View file

@ -5,7 +5,7 @@
*/
import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui';
import React, { useContext } from 'react';
import React, { useContext, useEffect } from 'react';
import styled from 'styled-components';
import {
EmptyState,
@ -28,6 +28,7 @@ interface OverviewPageProps {
autocomplete: Pick<AutocompleteProviderRegister, 'getProvider'>;
setBreadcrumbs: UMUpdateBreadcrumbs;
indexPattern: IIndexPattern;
setEsKueryFilters: (esFilters: string) => void;
}
type Props = OverviewPageProps;
@ -41,7 +42,12 @@ const EuiFlexItemStyled = styled(EuiFlexItem)`
}
`;
export const OverviewPageComponent = ({ autocomplete, setBreadcrumbs, indexPattern }: Props) => {
export const OverviewPageComponent = ({
autocomplete,
setBreadcrumbs,
indexPattern,
setEsKueryFilters,
}: Props) => {
const { colors } = useContext(UptimeThemeContext);
const [getUrlParams] = useUrlParams();
const { absoluteDateRangeStart, absoluteDateRangeEnd, ...params } = getUrlParams();
@ -61,6 +67,10 @@ export const OverviewPageComponent = ({ autocomplete, setBreadcrumbs, indexPatte
const [esFilters, error] = useUpdateKueryString(indexPattern, search, urlFilters);
useEffect(() => {
setEsKueryFilters(esFilters ?? '');
}, [esFilters, setEsKueryFilters]);
const sharedProps = {
dateRangeStart,
dateRangeEnd,