useMetricRule.tsx 706 B

1234567891011121314151617181920212223242526272829303132
  1. import {
  2. type ApiQueryKey,
  3. useApiQuery,
  4. type UseApiQueryOptions,
  5. } from 'sentry/utils/queryClient';
  6. import type {MetricRule} from 'sentry/views/alerts/rules/metric/types';
  7. interface MetricRuleParams {
  8. orgSlug: string;
  9. ruleId: string;
  10. query?: {
  11. expand?: 'latestIncident';
  12. };
  13. }
  14. export function makeMetricRuleQueryKey({
  15. orgSlug,
  16. ruleId,
  17. query,
  18. }: MetricRuleParams): ApiQueryKey {
  19. return [`/organizations/${orgSlug}/alert-rules/${ruleId}/`, {query}];
  20. }
  21. export function useMetricRule(
  22. params: MetricRuleParams,
  23. options: Partial<UseApiQueryOptions<MetricRule>> = {}
  24. ) {
  25. return useApiQuery<MetricRule>(makeMetricRuleQueryKey(params), {
  26. staleTime: 0,
  27. ...options,
  28. });
  29. }