mirror of
https://github.com/supabase/supabase.git
synced 2026-10-10 20:05:06 +03:00
Refactor authorize page to move Next.js dependencies into the page shell and have Next.js-agnostic code for the core logic. Add unit tests for authorize screen. ## Summary by CodeRabbit * **New Features** * New end-to-end API authorization UI: loading, error, invalid, approved, and main approval screens. * Organization selector with preselection, create-organization link, MCP warning, expiration handling, and approve/decline actions. * Improved page title handling via layout/head provider. * **Tests** * Added comprehensive component tests covering loading, error, approval flows, organization states, validation, and side effects.
33 lines
961 B
TypeScript
33 lines
961 B
TypeScript
import { useParams } from 'common'
|
|
import Head from 'next/head'
|
|
import { useRouter } from 'next/router'
|
|
|
|
import { ApiAuthorizationScreen } from '@/components/interfaces/ApiAuthorization/ApiAuthorization'
|
|
import { APIAuthorizationLayout } from '@/components/layouts/APIAuthorizationLayout'
|
|
import { withAuth } from '@/hooks/misc/withAuth'
|
|
import type { NextPageWithLayout } from '@/types'
|
|
|
|
const APIAuthorizationPage: NextPageWithLayout = () => {
|
|
const router = useRouter()
|
|
const routerReady = router.isReady
|
|
const { auth_id, organization_slug } = useParams()
|
|
|
|
if (!routerReady) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<ApiAuthorizationScreen
|
|
auth_id={auth_id}
|
|
organization_slug={organization_slug}
|
|
navigate={(destination) => router.push(destination)}
|
|
/>
|
|
)
|
|
}
|
|
|
|
APIAuthorizationPage.getLayout = (page) => (
|
|
<APIAuthorizationLayout HeadProvider={Head}>{page}</APIAuthorizationLayout>
|
|
)
|
|
|
|
export default withAuth(APIAuthorizationPage)
|