useProjectKeys.tsx 772 B

1234567891011121314151617181920212223242526272829
  1. import type {Organization} from 'sentry/types/organization';
  2. import type {Project, ProjectKey} from 'sentry/types/project';
  3. import {
  4. type ApiQueryKey,
  5. useApiQuery,
  6. type UseApiQueryOptions,
  7. } from 'sentry/utils/queryClient';
  8. interface ProjectKeysParameters {
  9. orgSlug: Organization['slug'];
  10. projSlug?: Project['slug'];
  11. }
  12. const makeProjectKeysQueryKey = ({
  13. orgSlug,
  14. projSlug,
  15. }: ProjectKeysParameters): ApiQueryKey => [`/projects/${orgSlug}/${projSlug}/keys/`];
  16. export function useProjectKeys(
  17. params: ProjectKeysParameters,
  18. options: Partial<UseApiQueryOptions<ProjectKey[]>> = {}
  19. ) {
  20. return useApiQuery<ProjectKey[]>(makeProjectKeysQueryKey(params), {
  21. staleTime: Infinity,
  22. retry: false,
  23. enabled: !!params.projSlug,
  24. ...options,
  25. });
  26. }