Files
payloadcms/packages/next/src/views/Verify/index.tsx
Elliot DeNolf 142616e6ad chore(eslint): curly [skip-lint] (#7959)
Now enforcing curly brackets on all if statements. Includes auto-fixer.


```ts
//  Bad
if (foo) foo++;

//  Good
if (foo) {
  foo++;
}
```




Note: this did not lint the `drizzle` package or any `db-*` packages.
This will be done in the future.
2024-08-29 10:15:36 -04:00

69 lines
1.5 KiB
TypeScript

import type { AdminViewProps } from 'payload'
import { formatAdminURL } from '@payloadcms/ui/shared'
import { redirect } from 'next/navigation.js'
import React from 'react'
import { Logo } from '../../elements/Logo/index.js'
import './index.scss'
export const verifyBaseClass = 'verify'
export { generateVerifyMetadata } from './meta.js'
export const Verify: React.FC<AdminViewProps> = async ({
initPageResult,
params,
searchParams,
}) => {
// /:collectionSlug/verify/:token
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [collectionSlug, verify, token] = params.segments
const { locale, permissions, req } = initPageResult
const {
i18n,
payload: { config },
payload,
user,
} = req
const {
routes: { admin: adminRoute },
} = config
let textToRender
try {
await req.payload.verifyEmail({
collection: collectionSlug,
token,
})
return redirect(formatAdminURL({ adminRoute, path: '/login' }))
} catch (e) {
// already verified
if (e?.status === 202) {
redirect(formatAdminURL({ adminRoute, path: '/login' }))
}
textToRender = req.t('authentication:unableToVerify')
}
return (
<React.Fragment>
<div className={`${verifyBaseClass}__brand`}>
<Logo
i18n={i18n}
locale={locale}
params={params}
payload={payload}
permissions={permissions}
searchParams={searchParams}
user={user}
/>
</div>
<h2>{textToRender}</h2>
</React.Fragment>
)
}