diff --git a/src/legacy/core_plugins/metrics/public/components/annotations_editor.js b/src/legacy/core_plugins/metrics/public/components/annotations_editor.js
index ccd87f3793628..f517875a522d7 100644
--- a/src/legacy/core_plugins/metrics/public/components/annotations_editor.js
+++ b/src/legacy/core_plugins/metrics/public/components/annotations_editor.js
@@ -28,8 +28,7 @@ import { FieldSelect } from './aggs/field_select';
import uuid from 'uuid';
import { IconSelect } from './icon_select';
import { YesNo } from './yes_no';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../contexts/query_input_bar_context';
+import { QueryBarWrapper } from './query_bar_wrapper';
import { getDefaultQueryLanguage } from './lib/get_default_query_language';
import {
@@ -171,19 +170,14 @@ export class AnnotationsEditor extends Component {
}
fullWidth
>
-
- {context => (
- this.handleQueryChange(model, query)}
- indexPatterns={[model.index_pattern]}
- {...context}
- />
- )}
-
+ this.handleQueryChange(model, query)}
+ indexPatterns={[model.index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config.js b/src/legacy/core_plugins/metrics/public/components/panel_config.js
index 4f0ef59950e4e..d1487955887b6 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config.js
@@ -25,12 +25,8 @@ import { TablePanelConfig as table } from './panel_config/table';
import { GaugePanelConfig as gauge } from './panel_config/gauge';
import { MarkdownPanelConfig as markdown } from './panel_config/markdown';
import { FormattedMessage } from '@kbn/i18n/react';
-import { FormValidationContext } from '../contexts/form_validation_context';
-import { QueryInputBarContext } from '../contexts/query_input_bar_context';
-import { npSetup } from 'ui/new_platform';
-import { Storage } from 'ui/storage';
-const localStorage = new Storage(window.localStorage);
+import { FormValidationContext } from '../contexts/form_validation_context';
import { VisDataContext } from '../contexts/vis_data_context';
const types = {
@@ -67,21 +63,13 @@ export function PanelConfig(props) {
formValidationResults[controlKey] = isControlValid;
};
- const queryBarInputContext = {
- uiSettings: npSetup.core.uiSettings,
- store: localStorage,
- appName: 'VisEditor',
- };
-
if (Component) {
return (
-
-
-
-
-
-
-
+
+
+
+
+
);
}
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/gauge.js b/src/legacy/core_plugins/metrics/public/components/panel_config/gauge.js
index 158f7e7babc1a..cc2306a5a17f9 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/gauge.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/gauge.js
@@ -43,9 +43,8 @@ import {
EuiHorizontalRule,
} from '@elastic/eui';
import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
-import { QueryBarInput } from 'plugins/data';
+import { QueryBarWrapper } from '../query_bar_wrapper';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
class GaugePanelConfigUi extends Component {
constructor(props) {
@@ -148,19 +147,14 @@ class GaugePanelConfigUi extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/markdown.js b/src/legacy/core_plugins/metrics/public/components/panel_config/markdown.js
index 707e59d108467..b50a0d398edf6 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/markdown.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/markdown.js
@@ -23,7 +23,6 @@ import { SeriesEditor } from '../series_editor';
import { IndexPattern } from '../index_pattern';
import 'brace/mode/less';
import { createSelectHandler } from '../lib/create_select_handler';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
import { ColorPicker } from '../color_picker';
import { YesNo } from '../yes_no';
import { MarkdownEditor } from '../markdown_editor';
@@ -45,7 +44,7 @@ import {
} from '@elastic/eui';
const lessC = less(window, { env: 'production' });
import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
-import { QueryBarInput } from 'plugins/data';
+import { QueryBarWrapper } from '../query_bar_wrapper';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
import { VisDataContext } from './../../contexts/vis_data_context';
@@ -157,21 +156,16 @@ class MarkdownPanelConfigUi extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/metric.js b/src/legacy/core_plugins/metrics/public/components/panel_config/metric.js
index e85785b1249fe..6aac01a93194c 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/metric.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/metric.js
@@ -39,9 +39,8 @@ import {
} from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
-import { QueryBarInput } from 'plugins/data';
+import { QueryBarWrapper } from '../query_bar_wrapper';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
export class MetricPanelConfig extends Component {
constructor(props) {
@@ -113,19 +112,14 @@ export class MetricPanelConfig extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/table.js b/src/legacy/core_plugins/metrics/public/components/panel_config/table.js
index 42f0b9d95659a..c1351952b36a6 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/table.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/table.js
@@ -43,9 +43,8 @@ import {
EuiText,
} from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
-import { QueryBarInput } from 'plugins/data';
+import { QueryBarWrapper } from '../query_bar_wrapper';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
export class TablePanelConfig extends Component {
constructor(props) {
super(props);
@@ -231,21 +230,16 @@ export class TablePanelConfig extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/timeseries.js b/src/legacy/core_plugins/metrics/public/components/panel_config/timeseries.js
index 52826b4e9d95b..6b8147285ead3 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/timeseries.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/timeseries.js
@@ -43,8 +43,7 @@ import {
} from '@elastic/eui';
import { injectI18n, FormattedMessage } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
+import { QueryBarWrapper } from '../query_bar_wrapper';
class TimeseriesPanelConfigUi extends Component {
constructor(props) {
super(props);
@@ -185,19 +184,14 @@ class TimeseriesPanelConfigUi extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/panel_config/top_n.js b/src/legacy/core_plugins/metrics/public/components/panel_config/top_n.js
index 28890f9369673..1cf17b772a1c3 100644
--- a/src/legacy/core_plugins/metrics/public/components/panel_config/top_n.js
+++ b/src/legacy/core_plugins/metrics/public/components/panel_config/top_n.js
@@ -43,8 +43,7 @@ import {
} from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
+import { QueryBarWrapper } from '../query_bar_wrapper';
export class TopNPanelConfig extends Component {
constructor(props) {
@@ -141,21 +140,16 @@ export class TopNPanelConfig extends Component {
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[model.index_pattern || model.default_index_pattern]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[model.index_pattern || model.default_index_pattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/query_bar_wrapper.js b/src/legacy/core_plugins/metrics/public/components/query_bar_wrapper.js
new file mode 100644
index 0000000000000..305162255e066
--- /dev/null
+++ b/src/legacy/core_plugins/metrics/public/components/query_bar_wrapper.js
@@ -0,0 +1,43 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import React from 'react';
+
+import { QueryBarInput } from 'plugins/data';
+import { npSetup } from 'ui/new_platform';
+import { Storage } from 'ui/storage';
+
+const APP_NAME = 'VisEditor';
+
+const queryBarInputContext = {
+ appName: APP_NAME,
+ uiSettings: npSetup.core.uiSettings,
+ store: new Storage(window.localStorage),
+};
+
+export function QueryBarWrapper(props) {
+ // Note: if you want to use your previous approach based on
+ // React Context you can get it here like e.g. :
+
+ // queryBarInputContext = useContext(QueryInputBarContext);
+
+ // but now I don't see any reasons to use context
+
+ return ;
+}
diff --git a/src/legacy/core_plugins/metrics/public/components/series_config.js b/src/legacy/core_plugins/metrics/public/components/series_config.js
index d15202b031cf6..4937e35fd609b 100644
--- a/src/legacy/core_plugins/metrics/public/components/series_config.js
+++ b/src/legacy/core_plugins/metrics/public/components/series_config.js
@@ -37,8 +37,7 @@ import {
} from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from './lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../contexts/query_input_bar_context';
+import { QueryBarWrapper } from './query_bar_wrapper';
export const SeriesConfig = props => {
const defaults = { offset_time: '', value_template: '' };
@@ -62,22 +61,17 @@ export const SeriesConfig = props => {
label={}
fullWidth
>
-
- {context => (
- props.onChange({ filter })}
- indexPatterns={[seriesIndexPattern]}
- {...context}
- />
- )}
-
+ props.onChange({ filter })}
+ indexPatterns={[seriesIndexPattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/splits/filter.js b/src/legacy/core_plugins/metrics/public/components/splits/filter.js
index 807b4a5313659..cadeb3f13ae21 100644
--- a/src/legacy/core_plugins/metrics/public/components/splits/filter.js
+++ b/src/legacy/core_plugins/metrics/public/components/splits/filter.js
@@ -24,8 +24,7 @@ import React from 'react';
import { htmlIdGenerator, EuiFlexGroup, EuiFlexItem, EuiFormRow } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
+import { QueryBarWrapper } from '../query_bar_wrapper';
export const SplitByFilter = props => {
const { onChange, uiRestrictions, indexPattern } = props;
@@ -59,19 +58,14 @@ export const SplitByFilter = props => {
/>
}
>
-
- {context => (
- onChange({ filter })}
- indexPatterns={[indexPattern]}
- {...context}
- />
- )}
-
+ onChange({ filter })}
+ indexPatterns={[indexPattern]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/splits/filter_items.js b/src/legacy/core_plugins/metrics/public/components/splits/filter_items.js
index 28e3959377d7f..5b0e1104c7004 100644
--- a/src/legacy/core_plugins/metrics/public/components/splits/filter_items.js
+++ b/src/legacy/core_plugins/metrics/public/components/splits/filter_items.js
@@ -27,8 +27,7 @@ import uuid from 'uuid';
import { EuiFieldText, EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import { injectI18n } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from '../lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../../contexts/query_input_bar_context';
+import { QueryBarWrapper } from '../query_bar_wrapper';
class FilterItemsUi extends Component {
constructor(props) {
super(props);
@@ -78,19 +77,14 @@ class FilterItemsUi extends Component {
/>
-
- {context => (
- this.handleQueryChange(model, query)}
- indexPatterns={[indexPatterns]}
- {...context}
- />
- )}
-
+ this.handleQueryChange(model, query)}
+ indexPatterns={[indexPatterns]}
+ />
}
fullWidth
>
-
- {context => (
- this.props.onChange({ filter })}
- indexPatterns={[this.props.indexPatternForQuery]}
- {...context}
- />
- )}
-
+ this.props.onChange({ filter })}
+ indexPatterns={[this.props.indexPatternForQuery]}
+ />
diff --git a/src/legacy/core_plugins/metrics/public/components/vis_types/timeseries/config.js b/src/legacy/core_plugins/metrics/public/components/vis_types/timeseries/config.js
index e2457e301b4cf..352b01a832694 100644
--- a/src/legacy/core_plugins/metrics/public/components/vis_types/timeseries/config.js
+++ b/src/legacy/core_plugins/metrics/public/components/vis_types/timeseries/config.js
@@ -39,8 +39,7 @@ import {
} from '@elastic/eui';
import { FormattedMessage, injectI18n } from '@kbn/i18n/react';
import { getDefaultQueryLanguage } from '../../lib/get_default_query_language';
-import { QueryBarInput } from 'plugins/data';
-import { QueryInputBarContext } from '../../../contexts/query_input_bar_context';
+import { QueryBarWrapper } from '../../query_bar_wrapper';
export const TimeseriesConfig = injectI18n(function(props) {
const handleSelectChange = createSelectHandler(props.onChange);
@@ -356,22 +355,17 @@ export const TimeseriesConfig = injectI18n(function(props) {
label={}
fullWidth
>
-
- {context => (
- props.onChange({ filter })}
- indexPatterns={[seriesIndexPattern]}
- {...context}
- />
- )}
-
+ props.onChange({ filter })}
+ indexPatterns={[seriesIndexPattern]}
+ />