Skip to content

Commit e488db7

Browse files
committed
Make alert filter controls storage key customizable
1 parent 932614a commit e488db7

3 files changed

Lines changed: 18 additions & 4 deletions

File tree

packages/kbn-alerts-ui-shared/src/alert_filter_controls/filter_group.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import { URL_PARAM_ARRAY_EXCEPTION_MSG } from './translations';
4444

4545
export const FilterGroup = (props: PropsWithChildren<FilterGroupProps>) => {
4646
const {
47+
featureIds,
4748
dataViewId,
4849
onFiltersChange,
4950
timeRange,
@@ -58,7 +59,7 @@ export const FilterGroup = (props: PropsWithChildren<FilterGroupProps>) => {
5859
maxControls = Infinity,
5960
ControlGroupRenderer,
6061
Storage,
61-
featureIds,
62+
storageKey,
6263
} = props;
6364

6465
const filterChangedSubscription = useRef<Subscription>();
@@ -79,8 +80,8 @@ export const FilterGroup = (props: PropsWithChildren<FilterGroupProps>) => {
7980
const [controlGroup, setControlGroup] = useState<ControlGroupRendererApi>();
8081

8182
const localStoragePageFilterKey = useMemo(
82-
() => `${featureIds.join(',')}.${spaceId}.${URL_PARAM_KEY}`,
83-
[featureIds, spaceId]
83+
() => storageKey ?? `${featureIds.join(',')}.${spaceId}.${URL_PARAM_KEY}`,
84+
[featureIds, spaceId, storageKey]
8485
);
8586

8687
const currentFiltersRef = useRef<Filter[]>();

packages/kbn-alerts-ui-shared/src/alert_filter_controls/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,5 @@ export interface FilterGroupProps extends Pick<ControlGroupRuntimeState, 'chaini
7474
*/
7575
ControlGroupRenderer: typeof ControlGroupRenderer;
7676
Storage: typeof Storage;
77+
storageKey?: string;
7778
}

x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_search_bar/url_synced_alerts_search_bar.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* 2.0.
66
*/
77

8-
import React, { useCallback, useEffect, useState } from 'react';
8+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
99
import { BoolQuery } from '@kbn/es-query';
1010
import { AlertConsumers } from '@kbn/rule-data-utils';
1111
import { i18n } from '@kbn/i18n';
@@ -61,17 +61,23 @@ export const UrlSyncedAlertsSearchBar = ({
6161
const [spaceId, setSpaceId] = useState<string>();
6262

6363
const {
64+
// KQL bar query
6465
kuery,
6566
onKueryChange,
67+
// KQL bar filters
6668
filters,
6769
onFiltersChange,
70+
// Controls bar filters
6871
controlFilters,
6972
onControlFiltersChange,
73+
// Time range
7074
rangeFrom,
7175
onRangeFromChange,
7276
rangeTo,
7377
onRangeToChange,
78+
// Controls bar configuration
7479
filterControls,
80+
// Saved KQL query
7581
savedQuery,
7682
setSavedQuery,
7783
clearSavedQuery,
@@ -131,6 +137,11 @@ export const UrlSyncedAlertsSearchBar = ({
131137
[onKueryChange, onRangeFromChange, onRangeToChange, setSavedQuery, timeFilterService]
132138
);
133139

140+
const filterControlsStorageKey = useMemo(
141+
() => ['alertsSearchBar', spaceId, 'filterControls'].filter(Boolean).join('.'),
142+
[spaceId]
143+
);
144+
134145
return (
135146
<>
136147
<AlertsSearchBar
@@ -156,6 +167,7 @@ export const UrlSyncedAlertsSearchBar = ({
156167
controlsUrlState={filterControls}
157168
filters={controlFilters}
158169
onFiltersChange={onControlFiltersChange}
170+
storageKey={filterControlsStorageKey}
159171
services={{
160172
http,
161173
notifications,

0 commit comments

Comments
 (0)