mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 11:02:13 +08:00

* Use custom storage for previewing alerting features configuration * Fix tests, add localStorage mock * Use store singleton
23 lines
896 B
TypeScript
23 lines
896 B
TypeScript
import { FeatureToggles, store } from '@grafana/data';
|
|
|
|
type AlertingPreviewToggles = Pick<FeatureToggles, 'alertingListViewV2'>;
|
|
|
|
const previewToggleStoreKey = 'grafana.alerting.previewToggles';
|
|
|
|
/**
|
|
* Get the preview toggle value for the given toggle name.
|
|
* @returns The value of the preview toggle or undefined if it is not set.
|
|
*/
|
|
export function getPreviewToggle(previewToggleName: keyof AlertingPreviewToggles): boolean | undefined {
|
|
const previewToggles = store.getObject<AlertingPreviewToggles>(previewToggleStoreKey, {});
|
|
|
|
return previewToggles[previewToggleName];
|
|
}
|
|
|
|
export function setPreviewToggle(previewToggleName: keyof AlertingPreviewToggles, value: boolean | undefined) {
|
|
const previewToggles = store.getObject<AlertingPreviewToggles>(previewToggleStoreKey, {});
|
|
|
|
previewToggles[previewToggleName] = value;
|
|
store.setObject(previewToggleStoreKey, previewToggles);
|
|
}
|