useOrgAndProjectData.ts 811 B

123456789101112131415161718192021222324252627282930
  1. import { useMemo } from 'react'
  2. import { useOrganizationsQuery } from '@/data/organizations/organizations-query'
  3. import { useProjectsInfiniteQuery } from '@/data/projects/projects-infinite-query'
  4. interface UseOrgAndProjectDataOptions {
  5. enabled?: boolean
  6. }
  7. export const useOrgAndProjectData = (options: UseOrgAndProjectDataOptions = {}) => {
  8. const { enabled = true } = options
  9. const { data: organizations = [], isLoading: isLoadingOrgs } = useOrganizationsQuery({ enabled })
  10. const { data: projectsData, isLoading: isLoadingProjects } = useProjectsInfiniteQuery({
  11. limit: 100,
  12. })
  13. const projects = useMemo(
  14. () => projectsData?.pages.flatMap((page) => page.projects) ?? [],
  15. [projectsData]
  16. )
  17. return {
  18. organizations,
  19. projects,
  20. isLoadingOrgs,
  21. isLoadingProjects,
  22. }
  23. }