Files
Jonathan Summers-Muir ed12c03e30 Merge remote-tracking branch 'origin/master' into feat/env-var
# Conflicts:
#	apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx
#	apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx
#	apps/studio/components/interfaces/Auth/AuthProvidersForm/index.tsx
#	apps/studio/components/interfaces/BranchManagement/BranchPanels.tsx
#	apps/studio/components/interfaces/BranchManagement/Overview.tsx
#	apps/studio/components/interfaces/Settings/General/General.tsx
#	apps/studio/components/layouts/AppLayout/BranchDropdown.tsx
#	apps/studio/components/layouts/Navigation/NavigationBar/NavigationBar.utils.tsx
#	apps/studio/package.json
#	apps/studio/pages/project/[ref]/merge.tsx
#	package.json
#	pnpm-lock.yaml
2026-08-04 18:42:31 +08:00

29 lines
962 B
TypeScript

import type { ProjectConfig } from '@supabase-dx/config'
import { useQuery } from '@tanstack/react-query'
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
const ENV_SERVER = 'http://localhost:3457'
export type { ProjectConfig }
async function fetchProjectConfig(projectRef: string): Promise<ProjectConfig> {
const res = await fetch(`${ENV_SERVER}/projects/${projectRef}/env?scope=config`)
if (!res.ok) throw new Error(`env-server error: ${res.status}`)
const vars: { key: string; value: string }[] = await res.json()
return Object.fromEntries(vars.map((v) => [v.key, v.value])) as ProjectConfig
}
export function useProjectConfig() {
const { data: project } = useSelectedProjectQuery()
const projectRef = project?.parentRef
return useQuery({
queryKey: ['project-config', projectRef],
queryFn: () => fetchProjectConfig(projectRef!),
enabled: !!projectRef,
retry: false,
throwOnError: false,
})
}