{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/explore/network/pages/network.tsx b/x-pack/solutions/security/plugins/security_solution/public/explore/network/pages/network.tsx
index b1d18246f2fe6..d1960cd68891b 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/explore/network/pages/network.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/explore/network/pages/network.tsx
@@ -52,6 +52,8 @@ import { EmptyPrompt } from '../../../common/components/empty_prompt';
import { useDataView } from '../../../data_view_manager/hooks/use_data_view';
import { useDataViewSpec } from '../../../data_view_manager/hooks/use_data_view_spec';
import { useSelectedPatterns } from '../../../data_view_manager/hooks/use_selected_patterns';
+import { PageLoader } from '../../../common/components/page_loader';
+
/**
* Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space.
*/
@@ -100,7 +102,7 @@ const NetworkComponent = React.memo
(
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
- const { dataView } = useDataView();
+ const { dataView, status } = useDataView();
const { dataViewSpec } = useDataViewSpec();
const experimentalSelectedPatterns = useSelectedPatterns();
@@ -152,6 +154,10 @@ const NetworkComponent = React.memo(
useInvalidFilterQuery({ id: ID, filterQuery, kqlError, query, startDate: from, endDate: to });
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/details/index.tsx b/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/details/index.tsx
index 95bd2239657b8..ba50e89ea645d 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/details/index.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/details/index.tsx
@@ -84,6 +84,7 @@ import { useRefetchOverviewPageRiskScore } from '../../../../entity_analytics/ap
import { useDataView } from '../../../../data_view_manager/hooks/use_data_view';
import { useDataViewSpec } from '../../../../data_view_manager/hooks/use_data_view_spec';
import { useSelectedPatterns } from '../../../../data_view_manager/hooks/use_selected_patterns';
+import { PageLoader } from '../../../../common/components/page_loader';
const QUERY_ID = 'UsersDetailsQueryId';
const ES_USER_FIELD = 'user.name';
@@ -129,7 +130,7 @@ const UsersDetailsComponent: React.FC = ({
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
- const { dataView } = useDataView();
+ const { dataView, status } = useDataView();
const { dataViewSpec } = useDataViewSpec();
const experimentalSelectedPatterns = useSelectedPatterns();
@@ -225,6 +226,10 @@ const UsersDetailsComponent: React.FC = ({
onChange: calculateEntityRiskScore,
});
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/users.tsx b/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/users.tsx
index a5fd301d1f352..7d0d245d619f0 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/users.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/explore/users/pages/users.tsx
@@ -54,6 +54,7 @@ import { userNameExistsFilter } from './details/helpers';
import { useDataView } from '../../../data_view_manager/hooks/use_data_view';
import { useDataViewSpec } from '../../../data_view_manager/hooks/use_data_view_spec';
import { useSelectedPatterns } from '../../../data_view_manager/hooks/use_selected_patterns';
+import { PageLoader } from '../../../common/components/page_loader';
const ID = 'UsersQueryId';
@@ -111,7 +112,7 @@ const UsersComponent = () => {
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
- const { dataView } = useDataView();
+ const { dataView, status } = useDataView();
const { dataViewSpec } = useDataViewSpec();
const experimentalSelectedPatterns = useSelectedPatterns();
@@ -180,6 +181,10 @@ const UsersComponent = () => {
const capabilities = useMlCapabilities();
const navTabs = useMemo(() => navTabsUsers(hasMlUserPermissions(capabilities)), [capabilities]);
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/flyout/network_details/components/network_details.tsx b/x-pack/solutions/security/plugins/security_solution/public/flyout/network_details/components/network_details.tsx
index 3bb68185e9192..9b8814e82d346 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/flyout/network_details/components/network_details.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/flyout/network_details/components/network_details.tsx
@@ -8,6 +8,7 @@
import React, { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
+import { PageLoader } from '../../../common/components/page_loader';
import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
import { InputsModelId } from '../../../common/store/inputs/constants';
import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query';
@@ -85,7 +86,7 @@ export const NetworkDetails = ({ ip, flowTarget }: NetworkDetailsProps) => {
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
- const { dataView } = useDataView();
+ const { dataView, status } = useDataView();
const { dataViewSpec } = useDataViewSpec();
const experimentalSelectedPatterns = useSelectedPatterns();
@@ -123,6 +124,10 @@ export const NetworkDetails = ({ ip, flowTarget }: NetworkDetailsProps) => {
aggregationInterval: 'auto',
});
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return indicesExist ? (
{
return ;
}
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/overview/pages/detection_response.tsx b/x-pack/solutions/security/plugins/security_solution/public/overview/pages/detection_response.tsx
index 0a09b73cfbf5b..b7c256b57fe4a 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/overview/pages/detection_response.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/overview/pages/detection_response.tsx
@@ -34,6 +34,7 @@ import { useGlobalFilterQuery } from '../../common/hooks/use_global_filter_query
import { useKibana } from '../../common/lib/kibana';
import { useDataView } from '../../data_view_manager/hooks/use_data_view';
import { useDataViewSpec } from '../../data_view_manager/hooks/use_data_view_spec';
+import { PageLoader } from '../../common/components/page_loader';
const DetectionResponseComponent = () => {
const { cases } = useKibana().services;
@@ -67,6 +68,10 @@ const DetectionResponseComponent = () => {
return docLinks.siem.privileges} />;
}
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
{indicesExist ? (
diff --git a/x-pack/solutions/security/plugins/security_solution/public/overview/pages/overview.tsx b/x-pack/solutions/security/plugins/security_solution/public/overview/pages/overview.tsx
index 95377d152e56d..fa9e88efe27fd 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/overview/pages/overview.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/overview/pages/overview.tsx
@@ -43,6 +43,7 @@ import { useSelectedPatterns } from '../../data_view_manager/hooks/use_selected_
import { useDataViewSpec } from '../../data_view_manager/hooks/use_data_view_spec';
import { useDataView } from '../../data_view_manager/hooks/use_data_view';
import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features';
+import { PageLoader } from '../../common/components/page_loader';
const OverviewComponent = () => {
const getGlobalFiltersQuerySelector = useMemo(
@@ -62,7 +63,7 @@ const OverviewComponent = () => {
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
- const { dataView } = useDataView();
+ const { dataView, status } = useDataView();
const { dataViewSpec } = useDataViewSpec();
const experimentalSelectedPatterns = useSelectedPatterns();
@@ -95,6 +96,10 @@ const OverviewComponent = () => {
const { hasIndexRead, hasKibanaREAD } = useAlertsPrivileges();
const { tiDataSources: allTiDataSources, isInitiallyLoaded: isTiLoaded } = useAllTiDataSources();
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
<>
diff --git a/x-pack/solutions/security/plugins/security_solution/public/sourcerer/containers/use_signal_helpers.tsx b/x-pack/solutions/security/plugins/security_solution/public/sourcerer/containers/use_signal_helpers.tsx
index 49c1dc2d1c969..d6f6fe55c5ef8 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/sourcerer/containers/use_signal_helpers.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/sourcerer/containers/use_signal_helpers.tsx
@@ -49,19 +49,24 @@ export const useSignalHelpers = (): {
? experimentalSignalIndexName
: signalIndexNameSourcerer;
- const { dataView: experimentalDefaultDataView } = useDataView(SourcererScopeName.default);
+ const { dataView: experimentalDefaultDataView, status } = useDataView(
+ SourcererScopeName.detections
+ );
const dataViewId = newDataViewPickerEnabled
? experimentalDefaultDataView?.id ?? null
: oldDataViewId;
const defaultDataViewPattern = newDataViewPickerEnabled
- ? experimentalDefaultDataView?.getIndexPattern() ?? ''
+ ? experimentalDefaultDataView.getIndexPattern() ?? ''
: oldDefaultDataView.title;
- const signalIndexNeedsInit = useMemo(
- () => !defaultDataViewPattern.includes(`${signalIndexName}`),
- [defaultDataViewPattern, signalIndexName]
- );
+ const signalIndexNeedsInit = useMemo(() => {
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return false;
+ }
+
+ return !defaultDataViewPattern.includes(`${signalIndexName}`);
+ }, [defaultDataViewPattern, newDataViewPickerEnabled, signalIndexName, status]);
const shouldWePollForIndex = useMemo(
() => !indicesExist && !signalIndexNeedsInit,
[indicesExist, signalIndexNeedsInit]
diff --git a/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.test.tsx b/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.test.tsx
index 01de3e0da474a..d0e5b83a8f0d3 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.test.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.test.tsx
@@ -26,7 +26,7 @@ jest.mock('../../overview/components/events_by_dataset');
jest.mock('../../sourcerer/containers');
jest.mock('../../common/components/user_privileges');
jest.mock('../../data_view_manager/hooks/use_data_view', () => ({
- useDataView: jest.fn(() => ({ matchedIndices: [] })),
+ useDataView: jest.fn(() => ({ dataView: { matchedIndices: [] } })),
}));
jest.mock('../../common/hooks/use_experimental_features');
diff --git a/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.tsx b/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.tsx
index a52aa638359e2..93b2435fd883d 100644
--- a/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.tsx
+++ b/x-pack/solutions/security/plugins/security_solution/public/timelines/pages/timelines_page.tsx
@@ -22,6 +22,7 @@ import { DataViewManagerScopeName } from '../../data_view_manager/constants';
import { useSourcererDataView } from '../../sourcerer/containers';
import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features';
import { useDataView } from '../../data_view_manager/hooks/use_data_view';
+import { PageLoader } from '../../common/components/page_loader';
export const DEFAULT_SEARCH_RESULTS_PER_PAGE = 10;
@@ -31,9 +32,9 @@ export const TimelinesPage = React.memo(() => {
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
const { indicesExist: oldIndicesExist } = useSourcererDataView();
- const { dataView } = useDataView(DataViewManagerScopeName.default);
+ const { dataView, status } = useDataView(DataViewManagerScopeName.default);
// NOTE: there should be a Suspense / some kind of loader here as this value is not settled immediately
- const experimentalIndicesExist = !!dataView?.matchedIndices?.length;
+ const experimentalIndicesExist = !!dataView.matchedIndices.length;
const indicesExist = newDataViewPickerEnabled ? experimentalIndicesExist : oldIndicesExist;
@@ -49,6 +50,10 @@ export const TimelinesPage = React.memo(() => {
const timelineType =
tabName === TimelineTypeEnum.default ? TimelineTypeEnum.default : TimelineTypeEnum.template;
+ if (newDataViewPickerEnabled && status === 'pristine') {
+ return ;
+ }
+
return (
{indicesExist ? (