import { FC } from 'react' import { useRouter } from 'next/router' import { Input, IconAlertCircle, IconLoader } from 'ui' import { JwtSecretUpdateStatus } from '@supabase/shared-types/out/events' import { useJwtSecretUpdateStatus, useProjectSettings } from 'hooks' import { DEFAULT_PROJECT_API_SERVICE_ID } from 'lib/constants' import Panel from 'components/ui/Panel' const DisplayConfigSettings = () => { const router = useRouter() const { ref } = router.query const { project, services, isLoading: isProjectSettingsLoading, isError: isProjectSettingsError, } = useProjectSettings(ref as string | undefined) const { isError: isJwtSecretUpdateStatusError, isLoading: isJwtSecretUpdateStatusLoading, jwtSecretUpdateStatus, }: any = useJwtSecretUpdateStatus(ref) const isNotUpdatingJwtSecret = jwtSecretUpdateStatus === undefined || jwtSecretUpdateStatus === JwtSecretUpdateStatus.Updated // Get the API service const jwtSecret = project?.jwt_secret ?? '' const apiService = (services ?? []).find((x: any) => x.app.id == DEFAULT_PROJECT_API_SERVICE_ID) const apiConfig = apiService?.app_config ?? {} return ( {isProjectSettingsError || isJwtSecretUpdateStatusError ? (

{isProjectSettingsError ? 'Failed to retrieve configuration' : 'Failed to update JWT secret'}

) : isProjectSettingsLoading || isJwtSecretUpdateStatusLoading ? (

{isProjectSettingsLoading ? 'Retrieving API keys' : 'JWT secret is being updated'}

) : ( <> )}
) } export default DisplayConfigSettings const ConfigContentWrapper: FC = ({ children }) => { return (
Project Configuration
} > {children}
) }