Skip to content

Commit ba6b874

Browse files
authored
[Security Solution][Sourcerer] Fix timeline filters for DV manager (#224834)
## Summary Filters we applied but no listed in the timeline, again - some mismatch in how the data view object was passed around. ## Testing Set the feature flag: ``` xpack.securitySolution.enableExperimental: ['newDataViewPickerEnabled'] ``` Then, adding a filter via cell action should render the correct pill in the top level filters pane. ### Checklist Check the PR satisfies following conditions. - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
1 parent 36cbbb9 commit ba6b874

File tree

1 file changed

+14
-14
lines changed
  • x-pack/solutions/security/plugins/security_solution/public/timelines/components/timeline/search_or_filter

1 file changed

+14
-14
lines changed

x-pack/solutions/security/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ import deepEqual from 'fast-deep-equal';
1414
import type { Filter } from '@kbn/es-query';
1515

1616
import type { FilterManager } from '@kbn/data-plugin/public';
17-
import type { DataView, DataViewSpec } from '@kbn/data-views-plugin/common';
17+
import type { DataView } from '@kbn/data-views-plugin/common';
1818
import { FilterItems } from '@kbn/unified-search-plugin/public';
1919
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
20-
import { useEnableExperimental } from '../../../../common/hooks/use_experimental_features';
21-
import { useDataViewSpec } from '../../../../data_view_manager/hooks/use_data_view_spec';
20+
import { useDataView } from '../../../../data_view_manager/hooks/use_data_view';
21+
import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
2222
import { useAppToasts } from '../../../../common/hooks/use_app_toasts';
2323
import { useDeepEqualSelector } from '../../../../common/hooks/use_selector';
2424
import { useKibana } from '../../../../common/lib/kibana';
@@ -75,17 +75,10 @@ const StatefulSearchOrFilterComponent = React.memo<Props>(
7575
services: { data },
7676
} = useKibana();
7777

78-
const { sourcererDataView: oldSourcererDataViewSpec } = useSourcererDataView(
79-
SourcererScopeName.timeline
80-
);
81-
82-
const { dataViewSpec: experimentalDataViewSpec } = useDataViewSpec(SourcererScopeName.timeline);
83-
const { newDataViewPickerEnabled } = useEnableExperimental();
78+
const { sourcererDataView: dataViewSpec } = useSourcererDataView(SourcererScopeName.timeline);
8479

85-
const dataViewSpec: DataViewSpec = useMemo(
86-
() => (newDataViewPickerEnabled ? experimentalDataViewSpec : oldSourcererDataViewSpec),
87-
[experimentalDataViewSpec, newDataViewPickerEnabled, oldSourcererDataViewSpec]
88-
);
80+
const { dataView: experimentalDataView } = useDataView(SourcererScopeName.timeline);
81+
const newDataViewPickerEnabled = useIsExperimentalFeatureEnabled('newDataViewPickerEnabled');
8982

9083
const getIsDataProviderVisible = useMemo(
9184
() => timelineSelectors.dataProviderVisibilitySelector(),
@@ -121,7 +114,14 @@ const StatefulSearchOrFilterComponent = React.memo<Props>(
121114
};
122115
}, [data.dataViews, filterQuery, addError, dataViewSpec, newDataViewPickerEnabled]);
123116

124-
const arrDataView = useMemo(() => (dataView != null ? [dataView] : []), [dataView]);
117+
// NOTE: re-using data view that is already created and available through data view manager
118+
const arrDataView = useMemo(() => {
119+
if (newDataViewPickerEnabled) {
120+
return experimentalDataView ? [experimentalDataView] : [];
121+
}
122+
123+
return dataView != null ? [dataView] : [];
124+
}, [dataView, experimentalDataView, newDataViewPickerEnabled]);
125125

126126
// Keep filter manager in sync with redux filters
127127
useEffect(() => {

0 commit comments

Comments
 (0)