diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx index 47e2b5363461657..dab2a82e7c7c94c 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx @@ -7,14 +7,14 @@ import React from 'react'; import { fireEvent, screen, waitFor } from '@testing-library/react'; -import { mockAppIndexPattern, mockDataView, mockUxSeries, render } from '../rtl_helpers'; +import { mockAppDataView, mockDataView, mockUxSeries, render } from '../rtl_helpers'; import { FilterLabel } from './filter_label'; import * as useSeriesHook from '../hooks/use_series_filters'; import { buildFilterLabel } from '../../filter_value_label/filter_value_label'; // FLAKY: https://github.com/elastic/kibana/issues/115324 describe.skip('FilterLabel', function () { - mockAppIndexPattern(); + mockAppDataView(); const invertFilter = jest.fn(); jest.spyOn(useSeriesHook, 'useSeriesFilters').mockReturnValue({ diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts index 1ecd83621bd4d81..f6de668b7addbeb 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts @@ -6,7 +6,7 @@ */ import { LayerConfig, LensAttributes } from './lens_attributes'; -import { mockAppIndexPattern, mockDataView } from '../rtl_helpers'; +import { mockAppDataView, mockDataView } from '../rtl_helpers'; import { getDefaultConfigs } from './default_configs'; import { sampleAttribute } from './test_data/sample_attribute'; @@ -21,7 +21,7 @@ import { RECORDS_FIELD, REPORT_METRIC_FIELD, PERCENTILE_RANKS, ReportTypes } fro import { obsvReportConfigMap } from '../obsv_exploratory_view'; describe('Lens Attribute', () => { - mockAppIndexPattern(); + mockAppDataView(); const reportViewConfig = getDefaultConfigs({ reportType: 'data-distribution', diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/rum/core_web_vitals_config.test.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/rum/core_web_vitals_config.test.ts index 273bbd769afc0bc..a72bfeeb0d806f3 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/rum/core_web_vitals_config.test.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/rum/core_web_vitals_config.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { mockAppIndexPattern, mockDataView } from '../../rtl_helpers'; +import { mockAppDataView, mockDataView } from '../../rtl_helpers'; import { getDefaultConfigs } from '../default_configs'; import { LayerConfig, LensAttributes } from '../lens_attributes'; import { sampleAttributeCoreWebVital } from '../test_data/sample_attribute_cwv'; @@ -13,7 +13,7 @@ import { LCP_FIELD, SERVICE_NAME, USER_AGENT_OS } from '../constants/elasticsear import { obsvReportConfigMap } from '../../obsv_exploratory_view'; describe('Core web vital config test', function () { - mockAppIndexPattern(); + mockAppDataView(); const seriesConfig = getDefaultConfigs({ reportType: 'core-web-vitals', diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx index 92ef0834880d502..64278c5510aa165 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx @@ -14,7 +14,7 @@ import { AppDataType, ReportViewType } from '../types'; import { getLayerConfigs } from '../hooks/use_lens_attributes'; import { LensEmbeddableInput, LensPublicStart, XYState } from '../../../../../../lens/public'; import { OperationTypeComponent } from '../series_editor/columns/operation_type_select'; -import { IndexPatternState } from '../hooks/use_app_index_pattern'; +import { DataViewState } from '../hooks/use_app_data_view'; import { ReportConfigMap } from '../contexts/exploratory_view_config'; import { obsvReportConfigMap } from '../obsv_exploratory_view'; import { ActionTypes, useActions } from './use_actions'; @@ -36,7 +36,7 @@ export interface ExploratoryEmbeddableProps { export interface ExploratoryEmbeddableComponentProps extends ExploratoryEmbeddableProps { lens: LensPublicStart; - indexPatterns: IndexPatternState; + indexPatterns: DataViewState; } // eslint-disable-next-line import/no-default-export diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/index.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/index.tsx index 7b0e2d10c0d3bcc..1dcc3878f2b4b27 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/index.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/index.tsx @@ -11,7 +11,7 @@ import { CoreStart } from 'kibana/public'; import type { ExploratoryEmbeddableProps, ExploratoryEmbeddableComponentProps } from './embeddable'; import { ObservabilityDataViews } from '../../../../utils/observability_data_views'; import { ObservabilityPublicPluginsStart } from '../../../../plugin'; -import type { IndexPatternState } from '../hooks/use_app_index_pattern'; +import type { DataViewState } from '../hooks/use_app_data_view'; import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; import type { AppDataType } from '../types'; @@ -30,7 +30,7 @@ export function getExploratoryViewEmbeddable( plugins: ObservabilityPublicPluginsStart ) { return (props: ExploratoryEmbeddableProps) => { - const [indexPatterns, setIndexPatterns] = useState({} as IndexPatternState); + const [indexPatterns, setIndexPatterns] = useState({} as DataViewState); const [loading, setLoading] = useState(false); const series = props.attributes[0]; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx index 458bcc0ea4a5f91..7289c701b0ca038 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { screen } from '@testing-library/dom'; -import { render, mockAppIndexPattern } from './rtl_helpers'; +import { render, mockAppDataView } from './rtl_helpers'; import { ExploratoryView } from './exploratory_view'; import * as obsvDataViews from '../../../utils/observability_data_views/observability_data_views'; import * as pluginHook from '../../../hooks/use_plugin_context'; @@ -19,7 +19,7 @@ jest.spyOn(pluginHook, 'usePluginContext').mockReturnValue({ }, } as any); describe('ExploratoryView', () => { - mockAppIndexPattern(); + mockAppDataView(); beforeEach(() => { const indexPattern = createStubIndexPattern({ diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx index 62b54a3fec203ef..78fcb6f745e45ee 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx @@ -23,7 +23,7 @@ import { ExploratoryViewHeader } from './header/header'; import { useSeriesStorage } from './hooks/use_series_storage'; import { useLensAttributes } from './hooks/use_lens_attributes'; import { TypedLensByValueInput } from '../../../../../lens/public'; -import { useAppIndexPatternContext } from './hooks/use_app_index_pattern'; +import { useAppDataViewContext } from './hooks/use_app_data_view'; import { SeriesViews } from './views/series_views'; import { LensEmbeddable } from './lens_embeddable'; import { EmptyView } from './components/empty_view'; @@ -51,7 +51,7 @@ export function ExploratoryView({ null ); - const { loadIndexPattern, loading } = useAppIndexPatternContext(); + const { loadDataView, loading } = useAppDataViewContext(); const { firstSeries, allSeries, lastRefresh, reportType } = useSeriesStorage(); @@ -66,11 +66,11 @@ export function ExploratoryView({ useEffect(() => { allSeries.forEach((seriesT) => { - loadIndexPattern({ + loadDataView({ dataType: seriesT.dataType, }); }); - }, [allSeries, loadIndexPattern]); + }, [allSeries, loadDataView]); useEffect(() => { setLensAttributes(lensAttributesT); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_index_pattern.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_data_view.tsx similarity index 61% rename from x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_index_pattern.tsx rename to x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_data_view.tsx index ca29a418525b1cb..bd6b65da9de64d4 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_index_pattern.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_app_data_view.tsx @@ -7,7 +7,7 @@ import React, { createContext, useContext, Context, useState, useCallback, useMemo } from 'react'; import { HttpFetchError } from 'kibana/public'; -import { IndexPattern } from '../../../../../../../../src/plugins/data/common'; +import { DataView } from '../../../../../../../../src/plugins/data/common'; import { AppDataType } from '../types'; import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { ObservabilityPublicPluginsStart } from '../../../../plugin'; @@ -16,40 +16,38 @@ import { getDataHandler } from '../../../../data_handler'; import { useExploratoryView } from '../contexts/exploratory_view_config'; import { DataViewInsufficientAccessError } from '../../../../../../../../src/plugins/data_views/common'; -export interface IndexPatternContext { +export interface DataViewContext { loading: boolean; - indexPatterns: IndexPatternState; - indexPatternErrors: IndexPatternErrors; + dataViews: DataViewState; + dataViewErrors: DataViewErrors; hasAppData: HasAppDataState; - loadIndexPattern: (params: { dataType: AppDataType }) => void; + loadDataView: (params: { dataType: AppDataType }) => void; } -export const IndexPatternContext = createContext>({}); +export const DataViewContext = createContext>({}); interface ProviderProps { children: JSX.Element; } type HasAppDataState = Record; -export type IndexPatternState = Record; -export type IndexPatternErrors = Record; +export type DataViewState = Record; +export type DataViewErrors = Record; type LoadingState = Record; -export function IndexPatternContextProvider({ children }: ProviderProps) { +export function DataViewContextProvider({ children }: ProviderProps) { const [loading, setLoading] = useState({} as LoadingState); - const [indexPatterns, setIndexPatterns] = useState({} as IndexPatternState); - const [indexPatternErrors, setIndexPatternErrors] = useState( - {} as IndexPatternErrors - ); + const [dataViews, setDataViews] = useState({} as DataViewState); + const [dataViewErrors, setDataViewErrors] = useState({} as DataViewErrors); const [hasAppData, setHasAppData] = useState({} as HasAppDataState); const { services: { data }, } = useKibana(); - const { dataViews: indexPatternsList } = useExploratoryView(); + const { dataViews: dataViewsList } = useExploratoryView(); - const loadIndexPattern: IndexPatternContext['loadIndexPattern'] = useCallback( + const loadDataView: DataViewContext['loadDataView'] = useCallback( async ({ dataType }) => { if (typeof hasAppData[dataType] === 'undefined' && !loading[dataType]) { setLoading((prevState) => ({ ...prevState, [dataType]: true })); @@ -57,8 +55,8 @@ export function IndexPatternContextProvider({ children }: ProviderProps) { try { let hasDataT = false; let indices: string | undefined = ''; - if (indexPatternsList[dataType]) { - indices = indexPatternsList[dataType]; + if (dataViewsList[dataType]) { + indices = dataViewsList[dataType]; hasDataT = true; } switch (dataType) { @@ -83,10 +81,10 @@ export function IndexPatternContextProvider({ children }: ProviderProps) { setHasAppData((prevState) => ({ ...prevState, [dataType]: hasDataT })); if (hasDataT && indices) { - const obsvIndexP = new ObservabilityDataViews(data); - const indPattern = await obsvIndexP.getDataView(dataType, indices); + const obsvDataV = new ObservabilityDataViews(data); + const dataV = await obsvDataV.getDataView(dataType, indices); - setIndexPatterns((prevState) => ({ ...prevState, [dataType]: indPattern })); + setDataViews((prevState) => ({ ...prevState, [dataType]: dataV })); } setLoading((prevState) => ({ ...prevState, [dataType]: false })); } catch (e) { @@ -94,48 +92,48 @@ export function IndexPatternContextProvider({ children }: ProviderProps) { e instanceof DataViewInsufficientAccessError || (e as HttpFetchError).body === 'Forbidden' ) { - setIndexPatternErrors((prevState) => ({ ...prevState, [dataType]: e })); + setDataViewErrors((prevState) => ({ ...prevState, [dataType]: e })); } setLoading((prevState) => ({ ...prevState, [dataType]: false })); } } }, - [data, hasAppData, indexPatternsList, loading] + [data, hasAppData, dataViewsList, loading] ); return ( - loadingT), }} > {children} - + ); } -export const useAppIndexPatternContext = (dataType?: AppDataType) => { - const { loading, hasAppData, loadIndexPattern, indexPatterns, indexPatternErrors } = useContext( - IndexPatternContext as unknown as Context +export const useAppDataViewContext = (dataType?: AppDataType) => { + const { loading, hasAppData, loadDataView, dataViews, dataViewErrors } = useContext( + DataViewContext as unknown as Context ); - if (dataType && !indexPatterns?.[dataType] && !loading) { - loadIndexPattern({ dataType }); + if (dataType && !dataViews?.[dataType] && !loading) { + loadDataView({ dataType }); } return useMemo(() => { return { hasAppData, loading, - indexPatterns, - indexPatternErrors, - indexPattern: dataType ? indexPatterns?.[dataType] : undefined, + dataViews, + dataViewErrors, + dataView: dataType ? dataViews?.[dataType] : undefined, hasData: dataType ? hasAppData?.[dataType] : undefined, - loadIndexPattern, + loadDataView, }; - }, [dataType, hasAppData, indexPatternErrors, indexPatterns, loadIndexPattern, loading]); + }, [dataType, hasAppData, dataViewErrors, dataViews, loadDataView, loading]); }; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx index 26dbc2ace341ec4..6c6427ec80d0aef 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx @@ -8,7 +8,7 @@ import { useCallback, useEffect, useState } from 'react'; import { useKibana } from '../../../../utils/kibana_react'; import { SeriesConfig, SeriesUrl } from '../types'; -import { useAppIndexPatternContext } from './use_app_index_pattern'; +import { useAppDataViewContext } from './use_app_data_view'; import { buildExistsFilter, urlFilterToPersistedFilter } from '../configurations/utils'; import { getFiltersFromDefs } from './use_lens_attributes'; import { RECORDS_FIELD, RECORDS_PERCENTAGE_FIELD } from '../configurations/constants'; @@ -24,21 +24,21 @@ export const useDiscoverLink = ({ series, seriesConfig }: UseDiscoverLink) => { application: { navigateToUrl }, } = kServices; - const { indexPatterns } = useAppIndexPatternContext(); + const { dataViews } = useAppDataViewContext(); const urlGenerator = kServices.discover?.urlGenerator; const [discoverUrl, setDiscoverUrl] = useState(''); useEffect(() => { - const indexPattern = indexPatterns?.[series.dataType]; + const dataView = dataViews?.[series.dataType]; - if (indexPattern) { + if (dataView) { const definitions = series.reportDefinitions ?? {}; const urlFilters = (series.filters ?? []).concat(getFiltersFromDefs(definitions)); const filters = urlFilterToPersistedFilter({ - dataView: indexPattern, + dataView, urlFilters, initFilters: seriesConfig?.baseFilters, }); @@ -50,7 +50,7 @@ export const useDiscoverLink = ({ series, seriesConfig }: UseDiscoverLink) => { selectedMetricField !== RECORDS_FIELD && selectedMetricField !== RECORDS_PERCENTAGE_FIELD ) { - filters.push(buildExistsFilter(selectedMetricField, indexPattern)[0]); + filters.push(buildExistsFilter(selectedMetricField, dataView)[0]); } const getDiscoverUrl = async () => { @@ -58,14 +58,14 @@ export const useDiscoverLink = ({ series, seriesConfig }: UseDiscoverLink) => { const newUrl = await urlGenerator.createUrl({ filters, - indexPatternId: indexPattern?.id, + indexPatternId: dataView?.id, }); setDiscoverUrl(newUrl); }; getDiscoverUrl(); } }, [ - indexPatterns, + dataViews, series.dataType, series.filters, series.reportDefinitions, diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.test.tsx index 7da8a9fe9f7f22c..d50e2134546c4cf 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.test.tsx @@ -15,7 +15,7 @@ import { mockDataView } from '../rtl_helpers'; import { createKbnUrlStateStorage } from '../../../../../../../../src/plugins/kibana_utils/public'; import { TRANSACTION_DURATION } from '../configurations/constants/elasticsearch_fieldnames'; import * as lensAttributes from '../configurations/lens_attributes'; -import * as indexPattern from './use_app_index_pattern'; +import * as useAppDataViewHook from './use_app_data_view'; import * as theme from '../../../../hooks/use_theme'; import { dataTypes, obsvReportConfigMap, reportTypesList } from '../obsv_exploratory_view'; import { ExploratoryViewContextProvider } from '../contexts/exploratory_view_config'; @@ -35,8 +35,8 @@ const mockSingleSeries = [ describe('useExpViewTimeRange', function () { const storage = createKbnUrlStateStorage({ useHash: false }); // @ts-ignore - jest.spyOn(indexPattern, 'useAppIndexPatternContext').mockReturnValue({ - indexPatterns: { + jest.spyOn(useAppDataViewHook, 'useAppDataViewContext').mockReturnValue({ + dataViews: { ux: mockDataView, apm: mockDataView, mobile: mockDataView, diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts index 949c04ed7f7e867..a430c4e79862e0a 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts @@ -19,7 +19,7 @@ import { import { getDefaultConfigs } from '../configurations/default_configs'; import { ReportViewType, SeriesUrl, UrlFilter } from '../types'; -import { IndexPatternState, useAppIndexPatternContext } from './use_app_index_pattern'; +import { DataViewState, useAppDataViewContext } from './use_app_data_view'; import { ALL_VALUES_SELECTED } from '../../field_value_suggestions/field_value_combobox'; import { useTheme } from '../../../../hooks/use_theme'; import { EuiTheme } from '../../../../../../../../src/plugins/kibana_react/common'; @@ -41,23 +41,23 @@ export function getLayerConfigs( allSeries: AllSeries, reportType: ReportViewType, theme: EuiTheme, - indexPatterns: IndexPatternState, + dataViews: DataViewState, reportConfigMap: ReportConfigMap ) { const layerConfigs: LayerConfig[] = []; allSeries.forEach((series, seriesIndex) => { - const indexPattern = indexPatterns?.[series?.dataType]; + const dataView = dataViews?.[series?.dataType]; if ( - indexPattern && + dataView && !isEmpty(series.reportDefinitions) && !series.hidden && series.selectedMetricField ) { const seriesConfig = getDefaultConfigs({ reportType, - dataView: indexPattern, + dataView, dataType: series.dataType, reportConfigMap, }); @@ -70,7 +70,7 @@ export function getLayerConfigs( layerConfigs.push({ filters, - indexPattern, + indexPattern: dataView, seriesConfig, time: series.time, name: series.name, @@ -90,7 +90,7 @@ export function getLayerConfigs( export const useLensAttributes = (): TypedLensByValueInput['attributes'] | null => { const { storage, allSeries, lastRefresh, reportType } = useSeriesStorage(); - const { indexPatterns } = useAppIndexPatternContext(); + const { dataViews } = useAppDataViewContext(); const { reportConfigMap } = useExploratoryView(); @@ -101,14 +101,14 @@ export const useLensAttributes = (): TypedLensByValueInput['attributes'] | null const allSeriesT: AllSeries = convertAllShortSeries(storage.get(allSeriesKey) ?? []); const reportTypeT: ReportViewType = storage.get(reportTypeKey) as ReportViewType; - if (isEmpty(indexPatterns) || isEmpty(allSeriesT) || !reportTypeT) { + if (isEmpty(dataViews) || isEmpty(allSeriesT) || !reportTypeT) { return null; } const layerConfigs = getLayerConfigs( allSeriesT, reportTypeT, theme, - indexPatterns, + dataViews, reportConfigMap ); @@ -121,5 +121,5 @@ export const useLensAttributes = (): TypedLensByValueInput['attributes'] | null return lensAttributes.getJSON(); // we also want to check the state on allSeries changes // eslint-disable-next-line react-hooks/exhaustive-deps - }, [indexPatterns, reportType, storage, theme, lastRefresh, allSeries]); + }, [dataViews, reportType, storage, theme, lastRefresh, allSeries]); }; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx index 5dbe0c2a6c078e7..e5792b3724e7281 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx @@ -13,7 +13,7 @@ import { useKibana } from '../../../../../../../src/plugins/kibana_react/public' import { euiStyled } from '../../../../../../../src/plugins/kibana_react/common'; import { ObservabilityPublicPluginsStart } from '../../../plugin'; import { useBreadcrumbs } from '../../../hooks/use_breadcrumbs'; -import { IndexPatternContextProvider } from './hooks/use_app_index_pattern'; +import { DataViewContextProvider } from './hooks/use_app_data_view'; import { createKbnUrlStateStorage, withNotifyOnErrors, @@ -68,11 +68,11 @@ export function ExploratoryViewPage({ return ( - + - + ); } diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx index cc5cebbf0c207a6..25f713bfbb2a074 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx @@ -27,8 +27,8 @@ import { import { ObservabilityPublicPluginsStart } from '../../../plugin'; import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; import { lensPluginMock } from '../../../../../lens/public/mocks'; -import * as useAppIndexPatternHook from './hooks/use_app_index_pattern'; -import { IndexPatternContext, IndexPatternContextProvider } from './hooks/use_app_index_pattern'; +import * as useAppDataViewHook from './hooks/use_app_data_view'; +import { DataViewContext, DataViewContextProvider } from './hooks/use_app_data_view'; import { AllSeries, reportTypeKey, @@ -44,7 +44,7 @@ import * as useValuesListHook from '../../../hooks/use_values_list'; import dataViewData from './configurations/test_data/test_data_view.json'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { setIndexPatterns } from '../../../../../../../src/plugins/data/public/services'; -import { IndexPattern, IndexPatternsContract } from '../../../../../../../src/plugins/data/common'; +import { DataView, IndexPatternsContract } from '../../../../../../../src/plugins/data/common'; import { AppDataType, SeriesUrl, UrlFilter } from './types'; import { createStubDataView } from '../../../../../../../src/plugins/data/common/stubs'; @@ -156,7 +156,7 @@ export function MockKibanaProvider>({ - {children} + {children} @@ -255,19 +255,19 @@ export const mockUseHasData = () => { return { spy, onRefreshTimeRange }; }; -export const mockAppIndexPattern = (props?: Partial) => { - const loadIndexPattern = jest.fn(); - const spy = jest.spyOn(useAppIndexPatternHook, 'useAppIndexPatternContext').mockReturnValue({ - indexPattern: mockDataView, +export const mockAppDataView = (props?: Partial) => { + const loadDataView = jest.fn(); + const spy = jest.spyOn(useAppDataViewHook, 'useAppDataViewContext').mockReturnValue({ + dataView: mockDataView, hasData: true, loading: false, hasAppData: { ux: true } as any, - loadIndexPattern, - indexPatterns: { ux: mockDataView } as unknown as Record, - indexPatternErrors: {} as any, + loadDataView, + dataViews: { ux: mockDataView } as unknown as Record, + dataViewErrors: {} as any, ...(props || {}), }); - return { spy, loadIndexPattern }; + return { spy, loadDataView }; }; export const mockUseValuesList = (values?: ListItem[]) => { diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/breakdown/label_breakdown.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/breakdown/label_breakdown.tsx index a5723ccb5264834..d85c7fcaad7214f 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/breakdown/label_breakdown.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/breakdown/label_breakdown.tsx @@ -9,7 +9,7 @@ import { EuiComboBox, EuiFlexItem } from '@elastic/eui'; import React from 'react'; import { i18n } from '@kbn/i18n'; import { SeriesConfig, SeriesUrl } from '../../types'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { useSeriesStorage } from '../../hooks/use_series_storage'; import { LABEL_FIELDS_BREAKDOWN } from '../../configurations/constants'; @@ -19,9 +19,9 @@ interface Props { seriesConfig?: SeriesConfig; } export function LabelsBreakdown({ series, seriesId }: Props) { - const { indexPattern } = useAppIndexPatternContext(series.dataType); + const { dataView } = useAppDataViewContext(series.dataType); - const labelFields = indexPattern?.fields.filter((field) => field.name.startsWith('labels.')); + const labelFields = dataView?.fields.filter((field) => field.name.startsWith('labels.')); const { setSeries } = useSeriesStorage(); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/data_type_select.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/data_type_select.test.tsx index 1afe1f979b272c9..9856cdd5272325b 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/data_type_select.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/data_type_select.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { fireEvent, screen } from '@testing-library/react'; -import { mockAppIndexPattern, mockUxSeries, render } from '../../rtl_helpers'; +import { mockAppDataView, mockUxSeries, render } from '../../rtl_helpers'; import { DataTypesSelect } from './data_type_select'; import { DataTypes } from '../../configurations/constants'; import { DataTypesLabels } from '../../obsv_exploratory_view'; @@ -15,7 +15,7 @@ import { DataTypesLabels } from '../../obsv_exploratory_view'; describe('DataTypeSelect', function () { const seriesId = 0; - mockAppIndexPattern(); + mockAppDataView(); it('should render properly', function () { render(); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx index b01010e4b81f97f..51728d628199f7b 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx @@ -14,7 +14,7 @@ import { DateRangePicker } from '../../components/date_range_picker'; import { SeriesDatePicker } from '../../components/series_date_picker'; import { AppDataType, SeriesUrl } from '../../types'; import { ReportTypes } from '../../configurations/constants'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { SyntheticsAddData } from '../../../add_data_buttons/synthetics_add_data'; import { MobileAddData } from '../../../add_data_buttons/mobile_add_data'; import { UXAddData } from '../../../add_data_buttons/ux_add_data'; @@ -36,7 +36,7 @@ const AddDataComponents: Record = { export function DatePickerCol({ seriesId, series }: Props) { const { reportType } = useSeriesStorage(); - const { hasAppData } = useAppIndexPatternContext(); + const { hasAppData } = useAppDataViewContext(); if (!series.dataType) { return null; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx index 0a5ac137a787048..d821e65afae04f1 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { fireEvent, screen, waitFor } from '@testing-library/react'; import { FilterExpanded } from './filter_expanded'; -import { mockUxSeries, mockAppIndexPattern, mockUseValuesList, render } from '../../rtl_helpers'; +import { mockUxSeries, mockAppDataView, mockUseValuesList, render } from '../../rtl_helpers'; import { USER_AGENT_NAME } from '../../configurations/constants/elasticsearch_fieldnames'; describe('FilterExpanded', function () { @@ -18,7 +18,7 @@ describe('FilterExpanded', function () { it('render', async () => { const initSeries = { filters }; - mockAppIndexPattern(); + mockAppDataView(); render( ) : ( button diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/incomplete_badge.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/incomplete_badge.tsx index 8e64f4bcea68011..83319dc48d7dff5 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/incomplete_badge.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/incomplete_badge.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { isEmpty } from 'lodash'; import { i18n } from '@kbn/i18n'; import { EuiBadge } from '@elastic/eui'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { SeriesConfig, SeriesUrl } from '../../types'; interface Props { @@ -18,7 +18,7 @@ interface Props { } export function IncompleteBadge({ seriesConfig, series }: Props) { - const { loading } = useAppIndexPatternContext(); + const { loading } = useAppDataViewContext(); if (!seriesConfig) { return null; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_col.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_col.test.tsx index 78c8c9b59dc21f1..980c02a0ab15313 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_col.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_col.test.tsx @@ -9,7 +9,7 @@ import { fireEvent, screen, waitFor } from '@testing-library/react'; import React from 'react'; import { getDefaultConfigs } from '../../configurations/default_configs'; import { - mockAppIndexPattern, + mockAppDataView, mockDataView, mockUseValuesList, mockUxSeries, @@ -19,7 +19,7 @@ import { ReportDefinitionCol } from './report_definition_col'; import { obsvReportConfigMap } from '../../obsv_exploratory_view'; describe('Series Builder ReportDefinitionCol', function () { - mockAppIndexPattern(); + mockAppDataView(); const seriesId = 0; const seriesConfig = getDefaultConfigs({ diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx index 2808dfae83527e4..0a86f366ad771c3 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx @@ -9,7 +9,7 @@ import React, { useMemo } from 'react'; import { isEmpty } from 'lodash'; import { ExistsFilter, PhraseFilter } from '@kbn/es-query'; import FieldValueSuggestions from '../../../field_value_suggestions'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { ESFilter } from '../../../../../../../../../src/core/types/elasticsearch'; import { PersistableFilter } from '../../../../../../../lens/common'; import { buildPhrasesFilter } from '../../configurations/utils'; @@ -36,7 +36,7 @@ export function ReportDefinitionField({ onChange, filters, }: Props) { - const { indexPattern } = useAppIndexPatternContext(series.dataType); + const { dataView } = useAppDataViewContext(series.dataType); const field = typeof fieldProp === 'string' ? fieldProp : fieldProp.field; @@ -62,10 +62,10 @@ export function ReportDefinitionField({ definitionFields.forEach((fieldObj) => { const fieldT = typeof fieldObj === 'string' ? fieldObj : fieldObj.field; - if (indexPattern && selectedReportDefinitions?.[fieldT] && fieldT !== field) { + if (dataView && selectedReportDefinitions?.[fieldT] && fieldT !== field) { const values = selectedReportDefinitions?.[fieldT]; if (!values.includes(ALL_VALUES_SELECTED)) { - const valueFilter = buildPhrasesFilter(fieldT, values, indexPattern)[0]; + const valueFilter = buildPhrasesFilter(fieldT, values, dataView)[0]; if (valueFilter.query) { filtersN.push(valueFilter.query); } @@ -78,7 +78,7 @@ export function ReportDefinitionField({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [JSON.stringify(selectedReportDefinitions), JSON.stringify(baseFilters)]); - if (!indexPattern) { + if (!dataView) { return null; } @@ -86,7 +86,7 @@ export function ReportDefinitionField({ onChange(field, val)} filters={queryFilters} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.test.tsx index aec45b38882a977..ef0f7c47d3f6759 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.test.tsx @@ -7,14 +7,14 @@ import React from 'react'; import { screen, waitFor } from '@testing-library/react'; -import { mockAppIndexPattern, mockDataView, mockUxSeries, render } from '../../rtl_helpers'; +import { mockAppDataView, mockDataView, mockUxSeries, render } from '../../rtl_helpers'; import { SelectedFilters } from './selected_filters'; import { getDefaultConfigs } from '../../configurations/default_configs'; import { USER_AGENT_NAME } from '../../configurations/constants/elasticsearch_fieldnames'; import { obsvReportConfigMap } from '../../obsv_exploratory_view'; describe('SelectedFilters', function () { - mockAppIndexPattern(); + mockAppDataView(); const dataViewSeries = getDefaultConfigs({ reportType: 'data-distribution', diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.tsx index b811bbcc0816473..241a9ad13f98dc8 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/selected_filters.tsx @@ -10,7 +10,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/e import { i18n } from '@kbn/i18n'; import { FilterLabel } from '../../components/filter_label'; import { SeriesConfig, SeriesUrl, UrlFilter } from '../../types'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { useSeriesFilters } from '../../hooks/use_series_filters'; import { useSeriesStorage } from '../../hooks/use_series_storage'; @@ -28,16 +28,16 @@ export function SelectedFilters({ seriesId, series, seriesConfig }: Props) { const { removeFilter, replaceFilter } = useSeriesFilters({ seriesId, series }); - const { indexPattern } = useAppIndexPatternContext(series.dataType); + const { dataView } = useAppDataViewContext(series.dataType); - if (filters.length === 0 || !indexPattern) { + if (filters.length === 0 || !dataView) { return null; } const btnProps = { seriesId, series, - dataView: indexPattern, + dataView, }; return ( diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx index 074a9e1ca678060..1b72a02dd65ec2c 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx @@ -12,7 +12,7 @@ import { RemoveSeries } from './remove_series'; import { useSeriesStorage } from '../../hooks/use_series_storage'; import { SeriesConfig, SeriesUrl } from '../../types'; import { useDiscoverLink } from '../../hooks/use_discover_link'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; interface Props { seriesId: number; @@ -26,9 +26,9 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P const { href: discoverHref } = useDiscoverLink({ series, seriesConfig }); - const { indexPatterns } = useAppIndexPatternContext(); + const { dataViews } = useAppDataViewContext(); - const indexPattern = indexPatterns?.[series.dataType]; + const dataView = dataViews?.[series.dataType]; const copySeries = () => { let copySeriesId: string = `${series.name}-copy`; @@ -68,7 +68,7 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P color="text" target="_blank" href={discoverHref} - isDisabled={!series.dataType || !series.selectedMetricField || !indexPattern} + isDisabled={!series.dataType || !series.selectedMetricField || !dataView} /> diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/components/labels_filter.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/components/labels_filter.tsx index 6abe2e8f2a7d985..2284b06433e6e27 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/components/labels_filter.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/components/labels_filter.tsx @@ -19,7 +19,7 @@ import { EuiSelectable } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FilterProps } from '../columns/filter_expanded'; -import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../../hooks/use_app_data_view'; import { FilterValuesList } from './filter_values_list'; import { useFilterValues } from '../use_filter_values'; @@ -28,9 +28,9 @@ export function LabelsFieldFilter(props: FilterProps) { const [query, setQuery] = useState(''); - const { indexPattern } = useAppIndexPatternContext(series.dataType); + const { dataView } = useAppDataViewContext(series.dataType); - const labelFields = indexPattern?.fields.filter((field) => field.name.startsWith('labels.')); + const labelFields = dataView?.fields.filter((field) => field.name.startsWith('labels.')); const [isPopoverOpen, setPopover] = useState(false); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/report_metric_options.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/report_metric_options.test.tsx index 592dc0a8a8e8ab6..63725346ba18b2b 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/report_metric_options.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/report_metric_options.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { mockAppIndexPattern, mockDataView, mockUxSeries, render } from '../rtl_helpers'; +import { mockAppDataView, mockDataView, mockUxSeries, render } from '../rtl_helpers'; import { getDefaultConfigs } from '../configurations/default_configs'; import { PERCENTILE } from '../configurations/constants'; import { ReportMetricOptions } from './report_metric_options'; @@ -31,7 +31,7 @@ describe('ReportMetricOptions', function () { }); it('should display loading if index pattern is not available and is loading', async function () { - mockAppIndexPattern({ loading: true, indexPatterns: undefined }); + mockAppDataView({ loading: true, dataViews: undefined }); const { container } = render( { setSeries(seriesId, { @@ -52,14 +52,14 @@ export function ReportMetricOptions({ seriesId, series, seriesConfig }: Props) { return null; } - const indexPattern = indexPatterns?.[series.dataType]; - const indexPatternError = indexPatternErrors?.[series.dataType]; + const dataView = dataViews?.[series.dataType]; + const dataViewError = dataViewErrors?.[series.dataType]; const options = (metricOptions ?? []).map(({ label, field, id }) => { let disabled = false; if (field !== RECORDS_FIELD && field !== RECORDS_PERCENTAGE_FIELD && field) { - disabled = !Boolean(indexPattern?.getFieldByName(field)); + disabled = !Boolean(dataView?.getFieldByName(field)); } return { disabled, @@ -85,19 +85,19 @@ export function ReportMetricOptions({ seriesId, series, seriesConfig }: Props) { }; }); - if (indexPatternError && !indexPattern && !loading) { + if (dataViewError && !dataView && !loading) { // TODO: Add a link to docs to explain how to add index patterns return ( - {indexPatternError.body?.error === 'Forbidden' || - indexPatternError.name === 'DataViewInsufficientAccessError' + {dataViewError.body?.error === 'Forbidden' || + dataViewError.name === 'DataViewInsufficientAccessError' ? NO_PERMISSIONS - : indexPatternError.body.message} + : dataViewError.body.message} ); } - if (!indexPattern && !loading) { + if (!dataView && !loading) { return {NO_DATA_AVAILABLE}; } @@ -111,7 +111,7 @@ export function ReportMetricOptions({ seriesId, series, seriesConfig }: Props) { onClick={() => setShowOptions((prevState) => !prevState)} fill size="s" - isLoading={!indexPattern && loading} + isLoading={!dataView && loading} buttonRef={focusButton} > {SELECT_REPORT_METRIC_LABEL} @@ -133,7 +133,7 @@ export function ReportMetricOptions({ seriesId, series, seriesConfig }: Props) { )} {series.selectedMetricField && - (indexPattern ? ( + (dataView ? ( ; export const getSeriesToEdit = ({ - indexPatterns, + dataViews, allSeries, reportType, reportConfigMap, }: { allSeries: SeriesContextValue['allSeries']; - indexPatterns: IndexPatternState; + dataViews: DataViewState; reportType: ReportViewType; reportConfigMap: ReportConfigMap; }): BuilderItem[] => { const getDataViewSeries = (dataType: AppDataType) => { - if (indexPatterns?.[dataType]) { + if (dataViews?.[dataType]) { return getDefaultConfigs({ dataType, reportType, reportConfigMap, - dataView: indexPatterns[dataType], + dataView: dataViews[dataType], }); } }; @@ -61,7 +61,7 @@ export const SeriesEditor = React.memo(function () { const { getSeries, allSeries, reportType } = useSeriesStorage(); - const { loading, indexPatterns } = useAppIndexPatternContext(); + const { loading, dataViews } = useAppDataViewContext(); const { reportConfigMap } = useExploratoryView(); @@ -88,7 +88,7 @@ export const SeriesEditor = React.memo(function () { const newEditorItems = getSeriesToEdit({ reportType, allSeries, - indexPatterns, + dataViews, reportConfigMap, }); @@ -108,7 +108,7 @@ export const SeriesEditor = React.memo(function () { setItemIdToExpandedRowMap((prevState) => { return { ...prevState, ...newExpandRows }; }); - }, [allSeries, getSeries, indexPatterns, loading, reportConfigMap, reportType]); + }, [allSeries, getSeries, dataViews, loading, reportConfigMap, reportType]); const toggleDetails = (item: BuilderItem) => { const itemIdToExpandedRowMapValues = { ...itemIdToExpandedRowMap }; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/use_filter_values.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/use_filter_values.ts index 3a273cc6adc9631..54421fa6f1bc911 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/use_filter_values.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/use_filter_values.ts @@ -8,7 +8,7 @@ import { ExistsFilter, isExistsFilter } from '@kbn/es-query'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { useValuesList } from '../../../../hooks/use_values_list'; import { FilterProps } from './columns/filter_expanded'; -import { useAppIndexPatternContext } from '../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../hooks/use_app_data_view'; import { ESFilter } from '../../../../../../../../src/core/types/elasticsearch'; import { PersistableFilter } from '../../../../../../lens/common'; @@ -16,7 +16,7 @@ export function useFilterValues( { field, series, baseFilters, label }: FilterProps, query?: string ) { - const { indexPatterns } = useAppIndexPatternContext(series.dataType); + const { dataViews } = useAppDataViewContext(series.dataType); const queryFilters: ESFilter[] = []; @@ -36,6 +36,6 @@ export function useFilterValues( time: series.time, keepHistory: true, filters: queryFilters, - indexPatternTitle: indexPatterns[series.dataType]?.title, + indexPatternTitle: dataViews[series.dataType]?.title, }); } diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/views/add_series_button.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/views/add_series_button.tsx index 4c1bc1d7fe3bbf0..7199a2c47adee4e 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/views/add_series_button.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/views/add_series_button.tsx @@ -12,7 +12,7 @@ import { i18n } from '@kbn/i18n'; import { SeriesUrl, BuilderItem } from '../types'; import { getSeriesToEdit } from '../series_editor/series_editor'; import { NEW_SERIES_KEY, useSeriesStorage } from '../hooks/use_series_storage'; -import { useAppIndexPatternContext } from '../hooks/use_app_index_pattern'; +import { useAppDataViewContext } from '../hooks/use_app_data_view'; import { DEFAULT_TIME, ReportTypes } from '../configurations/constants'; import { useExploratoryView } from '../contexts/exploratory_view_config'; @@ -21,13 +21,13 @@ export function AddSeriesButton() { const addSeriesButtonRef = useRef(null); const { getSeries, allSeries, setSeries, reportType } = useSeriesStorage(); - const { loading, indexPatterns } = useAppIndexPatternContext(); + const { loading, dataViews } = useAppDataViewContext(); const { reportConfigMap } = useExploratoryView(); useEffect(() => { - setEditorItems(getSeriesToEdit({ allSeries, indexPatterns, reportType, reportConfigMap })); - }, [allSeries, getSeries, indexPatterns, loading, reportConfigMap, reportType]); + setEditorItems(getSeriesToEdit({ allSeries, dataViews, reportType, reportConfigMap })); + }, [allSeries, getSeries, dataViews, loading, reportConfigMap, reportType]); const addSeries = () => { const prevSeries = allSeries?.[0];