1import { RulesSource } from 'app/types/unified-alerting'; 2import { useCallback } from 'react'; 3import { GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource'; 4import { useUnifiedAlertingSelector } from './useUnifiedAlertingSelector'; 5 6// datasource has ruler if it's grafana managed or if we're able to load rules from it 7export function useHasRuler(): (rulesSource: string | RulesSource) => boolean { 8 const rulerRules = useUnifiedAlertingSelector((state) => state.rulerRules); 9 return useCallback( 10 (rulesSource: string | RulesSource) => { 11 const rulesSourceName = typeof rulesSource === 'string' ? rulesSource : rulesSource.name; 12 return rulesSourceName === GRAFANA_RULES_SOURCE_NAME || !!rulerRules[rulesSourceName]?.result; 13 }, 14 [rulerRules] 15 ); 16} 17