policies.tsx50 lines · main
1import { PageContainer } from 'ui-patterns/PageContainer'
2import {
3 PageHeader,
4 PageHeaderAside,
5 PageHeaderDescription,
6 PageHeaderMeta,
7 PageHeaderSummary,
8 PageHeaderTitle,
9} from 'ui-patterns/PageHeader'
10import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
11
12import { RealtimePolicies } from '@/components/interfaces/Realtime/Policies'
13import DefaultLayout from '@/components/layouts/DefaultLayout'
14import RealtimeLayout from '@/components/layouts/RealtimeLayout/RealtimeLayout'
15import { DocsButton } from '@/components/ui/DocsButton'
16import { DOCS_URL } from '@/lib/constants'
17import type { NextPageWithLayout } from '@/types'
18
19const RealtimePoliciesPage: NextPageWithLayout = () => {
20 return (
21 <>
22 <PageHeader size="large">
23 <PageHeaderMeta>
24 <PageHeaderSummary>
25 <PageHeaderTitle>Policies</PageHeaderTitle>
26 <PageHeaderDescription>Control access to your realtime channels</PageHeaderDescription>
27 </PageHeaderSummary>
28 <PageHeaderAside>
29 <DocsButton href={`${DOCS_URL}/guides/realtime/authorization`} />
30 </PageHeaderAside>
31 </PageHeaderMeta>
32 </PageHeader>
33 <PageContainer size="large">
34 <PageSection>
35 <PageSectionContent>
36 <RealtimePolicies />
37 </PageSectionContent>
38 </PageSection>
39 </PageContainer>
40 </>
41 )
42}
43
44RealtimePoliciesPage.getLayout = (page) => (
45 <DefaultLayout>
46 <RealtimeLayout title="Policies">{page}</RealtimeLayout>
47 </DefaultLayout>
48)
49
50export default RealtimePoliciesPage