fix: admin view props
This commit is contained in:
@@ -2,7 +2,6 @@ import type { Metadata } from 'next'
|
||||
import type {
|
||||
Data,
|
||||
DocumentPreferences,
|
||||
InitPageResult,
|
||||
SanitizedConfig,
|
||||
ServerSideEditViewProps,
|
||||
} from 'payload/types'
|
||||
@@ -17,6 +16,8 @@ import {
|
||||
import { notFound } from 'next/navigation'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { EditView } from '../Edit'
|
||||
@@ -41,13 +42,7 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
export const Account = async ({
|
||||
initPageResult,
|
||||
searchParams,
|
||||
}: {
|
||||
initPageResult: InitPageResult
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}) => {
|
||||
export const Account: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {
|
||||
const {
|
||||
locale,
|
||||
permissions,
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { Field, InitPageResult } from 'payload/types'
|
||||
import type { Field } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { Form, FormSubmit, buildStateFromSchema } from '@payloadcms/ui'
|
||||
import { redirect } from 'next/navigation'
|
||||
import React from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { CreateFirstUserFields } from './index.client'
|
||||
@@ -30,19 +32,19 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
page: InitPageResult
|
||||
params: { [key: string]: string | string[] }
|
||||
searchParams: { [key: string]: string | string[] }
|
||||
}
|
||||
export const CreateFirstUser: React.FC<Props> = async ({ page }) => {
|
||||
const { req } = page
|
||||
const { config } = req.payload
|
||||
export const CreateFirstUser: React.FC<AdminViewProps> = async ({ initPageResult }) => {
|
||||
const {
|
||||
admin: { user: userSlug },
|
||||
routes: { admin: adminRoute, api: apiRoute },
|
||||
serverURL,
|
||||
} = config
|
||||
req,
|
||||
req: {
|
||||
payload: {
|
||||
config: {
|
||||
admin: { user: userSlug },
|
||||
routes: { admin: adminRoute, api: apiRoute },
|
||||
serverURL,
|
||||
},
|
||||
},
|
||||
},
|
||||
} = initPageResult
|
||||
|
||||
if (req.user) {
|
||||
redirect(adminRoute)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { HydrateClientUser, RenderCustomComponent } from '@payloadcms/ui'
|
||||
import Link from 'next/link'
|
||||
import { isEntityHidden } from 'payload/utilities'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
import type { DashboardProps } from './Default'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
@@ -31,12 +32,9 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
export const Dashboard = ({
|
||||
export const Dashboard: React.FC<AdminViewProps> = ({
|
||||
initPageResult,
|
||||
// searchParams,
|
||||
}: {
|
||||
initPageResult: InitPageResult
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}) => {
|
||||
const {
|
||||
permissions,
|
||||
|
||||
@@ -4,7 +4,6 @@ import type {
|
||||
DocumentPreferences,
|
||||
Document as DocumentType,
|
||||
Field,
|
||||
InitPageResult,
|
||||
SanitizedConfig,
|
||||
ServerSideEditViewProps,
|
||||
} from 'payload/types'
|
||||
@@ -24,6 +23,8 @@ import { notFound } from 'next/navigation'
|
||||
import queryString from 'qs'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getMetaBySegment } from './getMetaBySegment'
|
||||
import { getViewsFromConfig } from './getViewsFromConfig'
|
||||
|
||||
@@ -36,14 +37,10 @@ export const generateMetadata = async (args: {
|
||||
}
|
||||
}) => getMetaBySegment(args)
|
||||
|
||||
export const Document = async ({
|
||||
export const Document: React.FC<AdminViewProps> = async ({
|
||||
initPageResult,
|
||||
params,
|
||||
searchParams,
|
||||
}: {
|
||||
initPageResult: InitPageResult
|
||||
params: { [key: string]: string | string[] }
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}) => {
|
||||
const {
|
||||
collectionConfig,
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { Button, Email, Form, FormSubmit, Translation } from '@payloadcms/ui'
|
||||
import Link from 'next/link'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
|
||||
@@ -27,18 +29,14 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
baseClass: string
|
||||
page: InitPageResult
|
||||
}
|
||||
export const ForgotPassword: React.FC<Props> = async ({ page }) => {
|
||||
const { req } = page
|
||||
|
||||
export const ForgotPassword: React.FC<AdminViewProps> = ({ initPageResult }) => {
|
||||
const {
|
||||
i18n,
|
||||
payload: { config },
|
||||
user,
|
||||
} = req
|
||||
req: {
|
||||
i18n,
|
||||
payload: { config },
|
||||
user,
|
||||
},
|
||||
} = initPageResult
|
||||
|
||||
const {
|
||||
admin: { user: userSlug },
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { getTranslation } from '@payloadcms/translations'
|
||||
import {
|
||||
@@ -12,6 +12,7 @@ import { notFound } from 'next/navigation'
|
||||
import { isEntityHidden } from 'payload/utilities'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
import type { DefaultListViewProps, ListPreferences } from './Default/types'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
@@ -55,14 +56,7 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
export const ListView = async ({
|
||||
initPageResult,
|
||||
searchParams,
|
||||
}: {
|
||||
initPageResult: InitPageResult
|
||||
params: { [key: string]: string | string[] }
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}) => {
|
||||
export const ListView: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {
|
||||
const {
|
||||
collectionConfig,
|
||||
permissions,
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { Logo } from '@payloadcms/ui'
|
||||
import { redirect } from 'next/navigation'
|
||||
import React, { Fragment } from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { LoginForm } from './LoginForm'
|
||||
@@ -29,13 +31,8 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
baseClass: string
|
||||
page: InitPageResult
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}
|
||||
export const Login: React.FC<Props> = ({ baseClass, page, searchParams }) => {
|
||||
const { req } = page
|
||||
export const Login: React.FC<AdminViewProps> = ({ baseClass, initPageResult, searchParams }) => {
|
||||
const { req } = initPageResult
|
||||
|
||||
const {
|
||||
payload: { config },
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { MinimalTemplate } from '@payloadcms/ui'
|
||||
import React from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { LogoutClient } from './LogoutClient'
|
||||
@@ -30,24 +32,20 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
baseClass: string
|
||||
page: InitPageResult
|
||||
searchParams: { [key: string]: string | string[] }
|
||||
} & {
|
||||
inactivity?: boolean
|
||||
}
|
||||
|
||||
export const Logout: React.FC<Props> = ({ inactivity, page, searchParams }) => {
|
||||
export const Logout: React.FC<
|
||||
AdminViewProps & {
|
||||
inactivity?: boolean
|
||||
}
|
||||
> = ({ inactivity, initPageResult, searchParams }) => {
|
||||
const {
|
||||
req: {
|
||||
payload: { config },
|
||||
payload: {
|
||||
config: {
|
||||
routes: { admin },
|
||||
},
|
||||
},
|
||||
},
|
||||
} = page
|
||||
|
||||
const {
|
||||
routes: { admin },
|
||||
} = config
|
||||
} = initPageResult
|
||||
|
||||
return (
|
||||
<MinimalTemplate className={baseClass}>
|
||||
@@ -62,6 +60,6 @@ export const Logout: React.FC<Props> = ({ inactivity, page, searchParams }) => {
|
||||
)
|
||||
}
|
||||
|
||||
export const LogoutInactivity: React.FC<Props> = (props) => {
|
||||
export const LogoutInactivity: React.FC<AdminViewProps> = (props) => {
|
||||
return <Logout inactivity {...props} />
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import {
|
||||
Button,
|
||||
@@ -14,6 +14,8 @@ import {
|
||||
import Link from 'next/link'
|
||||
import React from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import './index.scss'
|
||||
@@ -39,14 +41,9 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
page: InitPageResult
|
||||
params: { [key: string]: string | string[] }
|
||||
searchParams: { [key: string]: string | string[] }
|
||||
}
|
||||
export const ResetPassword: React.FC<AdminViewProps> = ({ initPageResult, params }) => {
|
||||
const { req } = initPageResult
|
||||
|
||||
export const ResetPassword: React.FC<Props> = ({ page, params }) => {
|
||||
const { req } = page
|
||||
const { token } = params
|
||||
|
||||
const {
|
||||
|
||||
@@ -28,6 +28,13 @@ type Args = {
|
||||
}
|
||||
}
|
||||
|
||||
export type AdminViewProps = {
|
||||
baseClass?: string
|
||||
initPageResult: InitPageResult
|
||||
params?: { [key: string]: string | string[] | undefined }
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
}
|
||||
|
||||
const baseClasses = {
|
||||
forgot: 'forgot-password',
|
||||
login: 'login',
|
||||
@@ -46,7 +53,7 @@ const oneSegmentViews = {
|
||||
|
||||
export const RootPage = async ({ config: configPromise, params, searchParams }: Args) => {
|
||||
const config = await configPromise
|
||||
let ViewToRender
|
||||
let ViewToRender: React.FC<AdminViewProps>
|
||||
let templateClassName
|
||||
let initPageResult: InitPageResult
|
||||
let templateType: 'default' | 'minimal' = 'default'
|
||||
|
||||
@@ -3,6 +3,8 @@ import type { InitPageResult } from 'payload/types'
|
||||
|
||||
import React from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { meta } from '../../utilities/meta'
|
||||
import { UnauthorizedClient } from './UnauthorizedClient'
|
||||
|
||||
@@ -22,20 +24,17 @@ export const generateMetadata = async ({ page }: { page: InitPageResult }): Prom
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
page: InitPageResult
|
||||
}
|
||||
export const Unauthorized: React.FC<Props> = ({ page }) => {
|
||||
export const Unauthorized: React.FC<AdminViewProps> = ({ initPageResult }) => {
|
||||
const {
|
||||
req: {
|
||||
payload: { config },
|
||||
payload: {
|
||||
config: {
|
||||
admin: { logoutRoute },
|
||||
routes: { admin },
|
||||
},
|
||||
},
|
||||
},
|
||||
} = page
|
||||
|
||||
const {
|
||||
admin: { logoutRoute },
|
||||
routes: { admin },
|
||||
} = config
|
||||
} = initPageResult
|
||||
|
||||
return <UnauthorizedClient logoutRoute={`${admin}${logoutRoute}`} />
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { Metadata } from 'next'
|
||||
import type { InitPageResult, SanitizedConfig } from 'payload/types'
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { Logo } from '@payloadcms/ui'
|
||||
import { redirect } from 'next/navigation'
|
||||
import React from 'react'
|
||||
|
||||
import type { AdminViewProps } from '../Root'
|
||||
|
||||
import { getNextI18n } from '../../utilities/getNextI18n'
|
||||
import { meta } from '../../utilities/meta'
|
||||
import './index.scss'
|
||||
@@ -30,17 +32,11 @@ export const generateMetadata = async ({
|
||||
})
|
||||
}
|
||||
|
||||
type Props = {
|
||||
page: InitPageResult
|
||||
params: { [key: string]: string | string[] }
|
||||
searchParams: { [key: string]: string | string[] }
|
||||
}
|
||||
|
||||
export const Verify: React.FC<Props> = async ({ page, params }) => {
|
||||
export const Verify: React.FC<AdminViewProps> = async ({ initPageResult, params }) => {
|
||||
// /:collectionSlug/verify/:token
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const [collectionSlug, verify, token] = params.segments
|
||||
const { req } = page
|
||||
const { req } = initPageResult
|
||||
|
||||
const {
|
||||
payload: { config },
|
||||
|
||||
@@ -115,4 +115,4 @@
|
||||
"app/**/*.tsx",
|
||||
"scripts/**/*.ts"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user