useFetchIssueCounts.tsx 973 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type {ApiQueryKey, UseApiQueryOptions} from 'sentry/utils/queryClient';
  2. import {keepPreviousData, useApiQuery} from 'sentry/utils/queryClient';
  3. interface FetchIssueCountsParameters {
  4. environment: string[];
  5. orgSlug: string;
  6. project: number[];
  7. query: string[];
  8. end?: string | null;
  9. groupStatsPeriod?: string | null;
  10. sort?: string;
  11. start?: string | null;
  12. statsPeriod?: string | null;
  13. useGroupSnubaDataset?: boolean;
  14. }
  15. export const makeFetchIssueCounts = ({
  16. orgSlug,
  17. ...requestParams
  18. }: FetchIssueCountsParameters): ApiQueryKey => [
  19. `/organizations/${orgSlug}/issues-count/`,
  20. {
  21. query: requestParams,
  22. },
  23. ];
  24. export const useFetchIssueCounts = (
  25. params: FetchIssueCountsParameters,
  26. options: Partial<UseApiQueryOptions<Record<string, number>>> = {}
  27. ) => {
  28. return useApiQuery<Record<string, number>>(makeFetchIssueCounts(params), {
  29. staleTime: 180000, // 3 minutes
  30. placeholderData: keepPreviousData,
  31. ...options,
  32. });
  33. };