useSelectedProject.ts 1.7 KB

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