Files
grafana/public/app/features/alerting/state/selectors.ts
Peter Holmberg 2c2869a0ae AlertingNG: List saved Alert definitions in Alert Rule list (#30603)
* fetch alert definitions

* add new card for ng definitions

* get alerts from selector

* fix tests

* replace ol/li with verticalgroup
2021-01-26 12:12:41 +01:00

34 lines
994 B
TypeScript

import { AlertDefinition, AlertRule, AlertRulesState, NotificationChannelState, StoreState } from 'app/types';
import { config } from '@grafana/runtime';
export const getSearchQuery = (state: AlertRulesState) => state.searchQuery;
export const getAlertRuleItems = (state: StoreState) => {
const regex = new RegExp(state.alertRules.searchQuery, 'i');
const result: Array<AlertRule | AlertDefinition> = [];
result.push(
...state.alertRules.items.filter((item) => {
return regex.test(item.name) || regex.test(item.stateText) || regex.test(item.info!);
})
);
if (config.featureToggles.ngalert) {
result.push(
...state.alertDefinition.alertDefinitions.filter((item) => {
return regex.test(item.title);
})
);
}
return result;
};
export const getNotificationChannel = (state: NotificationChannelState, channelId: number) => {
if (state.notificationChannel.id === channelId) {
return state.notificationChannel;
}
return null;
};