useOrganizationProjects.tsx 868 B

123456789101112131415161718192021222324252627282930
  1. import type {Project} from 'sentry/types/project';
  2. import {useQuery} from 'sentry/utils/queryClient';
  3. import type RequestError from 'sentry/utils/requestError/requestError';
  4. import useApi from 'sentry/utils/useApi';
  5. import type {OrganizationWithRegion} from 'sentry/views/setupWizard/types';
  6. export function useOrganizationProjects({
  7. organization,
  8. query,
  9. }: {
  10. organization?: OrganizationWithRegion;
  11. query?: string;
  12. }) {
  13. const api = useApi();
  14. return useQuery<Project[], RequestError>({
  15. queryKey: [`/organizations/${organization?.slug}/projects/`, {query}],
  16. queryFn: () => {
  17. return api.requestPromise(`/organizations/${organization?.slug}/projects/`, {
  18. host: organization?.region.url,
  19. query: {
  20. query,
  21. },
  22. });
  23. },
  24. enabled: !!organization,
  25. refetchOnWindowFocus: true,
  26. retry: false,
  27. });
  28. }