roles.tsx56 lines · main
1import { useParams } from 'common'
2import { PageContainer } from 'ui-patterns/PageContainer'
3import {
4 PageHeader,
5 PageHeaderDescription,
6 PageHeaderMeta,
7 PageHeaderSummary,
8 PageHeaderTitle,
9} from 'ui-patterns/PageHeader'
10import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
11
12import { RolesList } from '@/components/interfaces/Database/Roles/RolesList'
13import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
14import DefaultLayout from '@/components/layouts/DefaultLayout'
15import { UnknownInterface } from '@/components/ui/UnknownInterface'
16import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
17import type { NextPageWithLayout } from '@/types'
18
19const DatabaseRoles: NextPageWithLayout = () => {
20 const { ref } = useParams()
21 const showRoles = useIsFeatureEnabled('database:roles')
22
23 if (!showRoles) {
24 return <UnknownInterface urlBack={`/project/${ref}/database/schemas`} />
25 }
26
27 return (
28 <>
29 <PageHeader size="large">
30 <PageHeaderMeta>
31 <PageHeaderSummary>
32 <PageHeaderTitle>Database Roles</PageHeaderTitle>
33 <PageHeaderDescription>
34 Manage access control to your database through users, groups, and permissions
35 </PageHeaderDescription>
36 </PageHeaderSummary>
37 </PageHeaderMeta>
38 </PageHeader>
39 <PageContainer size="large">
40 <PageSection>
41 <PageSectionContent>
42 <RolesList />
43 </PageSectionContent>
44 </PageSection>
45 </PageContainer>
46 </>
47 )
48}
49
50DatabaseRoles.getLayout = (page) => (
51 <DefaultLayout>
52 <DatabaseLayout title="Roles">{page}</DatabaseLayout>
53 </DefaultLayout>
54)
55
56export default DatabaseRoles