grafana_bak/public/app/features/alerting/unified/hooks/usePanelCombinedRules.ts
2025-04-01 10:38:02 +09:00

29 lines
713 B
TypeScript

import { CombinedRule } from 'app/types/unified-alerting';
import { useCombinedRules } from './useCombinedRuleNamespaces';
interface Options {
dashboardUID: string | null;
panelId: number;
poll?: boolean;
}
interface ReturnBag {
errors: unknown[];
rules: CombinedRule[];
loading?: boolean;
}
export function usePanelCombinedRules({ dashboardUID, panelId, poll = false }: Options): ReturnBag {
const { result: combinedNamespaces, loading, error } = useCombinedRules(dashboardUID, panelId, poll);
const rules = combinedNamespaces ? combinedNamespaces.flatMap((ns) => ns.groups).flatMap((group) => group.rules) : [];
return {
rules,
errors: error ? [error] : [],
loading,
};
}