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