extensions.tsx64 lines · main
1import { PermissionAction } from '@supabase/shared-types/out/constants'
2import { PageContainer } from 'ui-patterns/PageContainer'
3import {
4 PageHeader,
5 PageHeaderAside,
6 PageHeaderDescription,
7 PageHeaderMeta,
8 PageHeaderSummary,
9 PageHeaderTitle,
10} from 'ui-patterns/PageHeader'
11import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
12
13import { Extensions } from '@/components/interfaces/Database/Extensions/Extensions'
14import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
15import DefaultLayout from '@/components/layouts/DefaultLayout'
16import { DocsButton } from '@/components/ui/DocsButton'
17import NoPermission from '@/components/ui/NoPermission'
18import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
19import { DOCS_URL } from '@/lib/constants'
20import type { NextPageWithLayout } from '@/types'
21
22const DatabaseExtensions: NextPageWithLayout = () => {
23 const { can: canReadExtensions, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
24 PermissionAction.TENANT_SQL_ADMIN_READ,
25 'extensions'
26 )
27
28 if (isPermissionsLoaded && !canReadExtensions) {
29 return <NoPermission isFullPage resourceText="view database extensions" />
30 }
31
32 return (
33 <>
34 <PageHeader size="large">
35 <PageHeaderMeta>
36 <PageHeaderSummary>
37 <PageHeaderTitle>Database Extensions</PageHeaderTitle>
38 <PageHeaderDescription>
39 Manage what extensions are installed in your database
40 </PageHeaderDescription>
41 </PageHeaderSummary>
42 <PageHeaderAside>
43 <DocsButton href={`${DOCS_URL}/guides/database/extensions`} />
44 </PageHeaderAside>
45 </PageHeaderMeta>
46 </PageHeader>
47 <PageContainer size="large">
48 <PageSection>
49 <PageSectionContent>
50 <Extensions />
51 </PageSectionContent>
52 </PageSection>
53 </PageContainer>
54 </>
55 )
56}
57
58DatabaseExtensions.getLayout = (page) => (
59 <DefaultLayout>
60 <DatabaseLayout title="Extensions">{page}</DatabaseLayout>
61 </DefaultLayout>
62)
63
64export default DatabaseExtensions