useSelectedProject.ts65 lines · main
1import { useParams } from 'common'
2
3import { useProjectDetailQuery } from '@/data/projects/project-detail-query'
4import { PROJECT_STATUS, PROVIDERS } from '@/lib/constants'
5
6export function useSelectedProjectQuery({ enabled = true } = {}) {
7 const { ref } = useParams()
8
9 return useProjectDetailQuery(
10 { ref },
11 {
12 enabled,
13 select: (data) => {
14 return {
15 ...data,
16 parentRef: data.parent_project_ref ?? data.ref,
17 }
18 },
19 }
20 )
21}
22
23export const useIsAwsCloudProvider = () => {
24 const { data: project } = useSelectedProjectQuery()
25 const isAws = project?.cloud_provider === PROVIDERS.AWS.id
26
27 return isAws
28}
29
30export const useIsAwsK8sCloudProvider = () => {
31 const { data: project } = useSelectedProjectQuery()
32 const isAwsK8s = project?.cloud_provider === PROVIDERS.AWS_K8S.id
33
34 return isAwsK8s
35}
36
37export const useIsAwsNimbusCloudProvider = () => {
38 const { data: project } = useSelectedProjectQuery()
39 const isAwsNimbus = project?.cloud_provider === PROVIDERS.AWS_NIMBUS.id
40
41 return isAwsNimbus
42}
43
44export const useIsOrioleDb = () => {
45 const { data: project } = useSelectedProjectQuery()
46 const isOrioleDb = project?.dbVersion?.endsWith('orioledb')
47 return isOrioleDb
48}
49
50export const useIsOrioleDbInAws = () => {
51 const { data: project } = useSelectedProjectQuery()
52 const isOrioleDbInAws =
53 project?.dbVersion?.endsWith('orioledb') && project?.cloud_provider === PROVIDERS.AWS.id
54 return isOrioleDbInAws
55}
56
57export const useIsHighAvailability = () => {
58 const { data: project } = useSelectedProjectQuery()
59 return project?.high_availability ?? false
60}
61
62export const useIsProjectActive = () => {
63 const { data: project } = useSelectedProjectQuery()
64 return project?.status === PROJECT_STATUS.ACTIVE_HEALTHY
65}