Files
supabase/apps/studio/pages/authorize.tsx
Charis 6563dc7998 refactor: authorize page (#44522)
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.
2026-04-06 10:02:56 -04:00

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)