smtp.tsx44 lines · main
1import { PermissionAction } from '@supabase/shared-types/out/constants'
2import { GenericSkeletonLoader } from 'ui-patterns'
3import { PageContainer } from 'ui-patterns/PageContainer'
4import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
5
6import { SmtpForm } from '@/components/interfaces/Auth/SmtpForm/SmtpForm'
7import { AuthEmailsLayout } from '@/components/layouts/AuthLayout/AuthEmailsLayout'
8import DefaultLayout from '@/components/layouts/DefaultLayout'
9import NoPermission from '@/components/ui/NoPermission'
10import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
11import type { NextPageWithLayout } from '@/types'
12
13const SmtpPage: NextPageWithLayout = () => {
14 const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
15 PermissionAction.READ,
16 'custom_config_gotrue'
17 )
18
19 if (isPermissionsLoaded && !canReadAuthSettings) {
20 return <NoPermission isFullPage resourceText="access your project's email settings" />
21 }
22
23 return (
24 <PageContainer size="default">
25 {!isPermissionsLoaded ? (
26 <PageSection>
27 <PageSectionContent>
28 <GenericSkeletonLoader />
29 </PageSectionContent>
30 </PageSection>
31 ) : (
32 <SmtpForm />
33 )}
34 </PageContainer>
35 )
36}
37
38SmtpPage.getLayout = (page) => (
39 <DefaultLayout>
40 <AuthEmailsLayout>{page}</AuthEmailsLayout>
41 </DefaultLayout>
42)
43
44export default SmtpPage