useRecurringCredits.tsx 861 B

12345678910111213141516171819202122
  1. import type {Organization} from 'sentry/types/organization';
  2. import {useApiQuery} from 'sentry/utils/queryClient';
  3. import useOrganization from 'sentry/utils/useOrganization';
  4. import type {RecurringCredit} from 'getsentry/types';
  5. const hasBilling = ({access}: Organization) => access?.includes('org:billing');
  6. interface RecurringCreditsContext {
  7. isLoading: boolean;
  8. recurringCredits: RecurringCredit[];
  9. }
  10. export function useRecurringCredits(): RecurringCreditsContext {
  11. const organization = useOrganization();
  12. const enabled = hasBilling(organization);
  13. const {data: recurringCredits = [], isPending} = useApiQuery<RecurringCredit[]>(
  14. [`/customers/${organization.slug}/recurring-credits/`],
  15. {staleTime: Infinity, enabled, notifyOnChangeProps: ['data', 'isLoading']}
  16. );
  17. return {recurringCredits, isLoading: enabled ? isPending : false};
  18. }