Skip to content

Commit c55d460

Browse files
committed
refactor(ui,next): move admin views from packages/next to packages/ui
1 parent 29e4786 commit c55d460

95 files changed

Lines changed: 628 additions & 441 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/next/src/esbuildEntry.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
export { RootLayout } from './layouts/Root/index.js'
2-
export { DashboardView } from './views/Dashboard/index.js'
3-
export { LoginView } from './views/Login/index.js'
42
export { RootPage } from './views/Root/index.js'

packages/next/src/exports/views.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
export { AccountView } from '../views/Account/index.js'
2-
export { CreateFirstUserView } from '../views/CreateFirstUser/index.js'
3-
export {
4-
type DashboardViewClientProps,
5-
type DashboardViewServerProps,
6-
type DashboardViewServerPropsOnly,
7-
DefaultDashboard,
8-
} from '../views/Dashboard/Default/index.js'
9-
export { DashboardView } from '../views/Dashboard/index.js'
10-
112
export { ListView, renderListView, type RenderListViewArgs } from '../views/List/index.js'
12-
export { LoginView } from '../views/Login/index.js'
133
export { NotFoundPage } from '../views/NotFound/index.js'
144

155
export { type GenerateViewMetadata, RootPage } from '../views/Root/index.js'
166
export { generatePageMetadata } from '../views/Root/metadata.js'
7+
export { CreateFirstUserView } from '@payloadcms/ui/views/CreateFirstUser'
8+
9+
export {
10+
DashboardView,
11+
type DashboardViewClientProps,
12+
type DashboardViewServerProps,
13+
type DashboardViewServerPropsOnly,
14+
DefaultDashboard,
15+
} from '@payloadcms/ui/views/Dashboard'
16+
export { LoginView } from '@payloadcms/ui/views/Login'

packages/next/src/utilities/handleServerFunctions.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import {
88
import { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'
99
import { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'
1010
import { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'
11+
import {
12+
getDefaultLayoutHandler,
13+
renderWidgetHandler,
14+
} from '@payloadcms/ui/views/Dashboard/serverFunctions'
1115

12-
import { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'
13-
import { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'
1416
import { renderDocumentHandler } from '../views/Document/handleServerFunction.js'
1517
import { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'
1618
import { renderListHandler } from '../views/List/handleServerFunction.js'

packages/next/src/utilities/meta.spec.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { describe, expect, it } from 'vitest'
22

3-
import { generateMetadata } from './meta.js'
3+
import { formatNextMetadata } from './meta.js'
44

5-
describe('generateMetadata', () => {
5+
describe('formatNextMetadata', () => {
66
it('should handle a string title with titleSuffix', async () => {
7-
const result = await generateMetadata({
7+
const result = await formatNextMetadata({
88
serverURL: 'http://localhost:3000',
99
title: 'Dashboard',
1010
titleSuffix: '- My CMS',
@@ -14,7 +14,7 @@ describe('generateMetadata', () => {
1414
})
1515

1616
it('should apply titleSuffix to default and template fields of a TemplateString title object', async () => {
17-
const result = await generateMetadata({
17+
const result = await formatNextMetadata({
1818
serverURL: 'http://localhost:3000',
1919
title: { default: 'Dashboard', template: '%s | Dashboard' },
2020
titleSuffix: '- My CMS',
@@ -30,7 +30,7 @@ describe('generateMetadata', () => {
3030
})
3131

3232
it('should use the TemplateString default for ogTitle when title is a TemplateString object', async () => {
33-
const result = await generateMetadata({
33+
const result = await formatNextMetadata({
3434
serverURL: 'http://localhost:3000',
3535
title: { default: 'My CMS', template: '%s | My CMS' },
3636
titleSuffix: '- Payload',
@@ -41,7 +41,7 @@ describe('generateMetadata', () => {
4141
})
4242

4343
it('should use the TemplateString absolute for ogTitle when title has absolute property', async () => {
44-
const result = await generateMetadata({
44+
const result = await formatNextMetadata({
4545
serverURL: 'http://localhost:3000',
4646
title: { absolute: 'My CMS Absolute' },
4747
titleSuffix: '- Payload',
@@ -51,7 +51,7 @@ describe('generateMetadata', () => {
5151
})
5252

5353
it('should apply titleSuffix to the absolute field of a TemplateString title object', async () => {
54-
const result = await generateMetadata({
54+
const result = await formatNextMetadata({
5555
serverURL: 'http://localhost:3000',
5656
title: { absolute: 'My CMS Absolute' },
5757
titleSuffix: '- Payload',
@@ -62,7 +62,7 @@ describe('generateMetadata', () => {
6262
})
6363

6464
it('should use openGraph.title string over incomingMetadata.title for ogTitle', async () => {
65-
const result = await generateMetadata({
65+
const result = await formatNextMetadata({
6666
serverURL: 'http://localhost:3000',
6767
title: 'My CMS',
6868
titleSuffix: '- Payload',
@@ -73,15 +73,15 @@ describe('generateMetadata', () => {
7373
})
7474

7575
it('should return undefined for metaTitle when no title and no titleSuffix are set', async () => {
76-
const result = await generateMetadata({
76+
const result = await formatNextMetadata({
7777
serverURL: 'http://localhost:3000',
7878
})
7979

8080
expect(result.title).toBeUndefined()
8181
})
8282

8383
it('should return just the title when no titleSuffix is set', async () => {
84-
const result = await generateMetadata({
84+
const result = await formatNextMetadata({
8585
serverURL: 'http://localhost:3000',
8686
title: 'My CMS',
8787
})

packages/next/src/utilities/meta.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ const defaultOpenGraph: Metadata['openGraph'] = {
5050
title: 'Payload App',
5151
}
5252

53-
export const generateMetadata = async (
54-
args: { serverURL: string } & MetaConfig,
53+
export const formatNextMetadata = async (
54+
args: { serverURL?: string } & MetaConfig,
5555
): Promise<Metadata> => {
5656
const { defaultOGImageType, serverURL, titleSuffix, ...rest } = args
5757

packages/next/src/views/Account/index.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import type { AdminViewServerProps, DocumentViewServerPropsOnly } from 'payload'
22

3-
import { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@payloadcms/ui'
3+
import {
4+
DefaultEditView,
5+
DocumentInfoProvider,
6+
EditDepthProvider,
7+
HydrateAuthProvider,
8+
} from '@payloadcms/ui'
49
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'
510
import { DocumentHeader } from '@payloadcms/ui/rsc'
611
import { buildFormState } from '@payloadcms/ui/utilities/buildFormState'
12+
import { getDocPreferences } from '@payloadcms/ui/utilities/getDocPreferences'
13+
import { getDocumentData } from '@payloadcms/ui/utilities/getDocumentData'
714
import { notFound } from 'next/navigation.js'
815
import { formatAdminURL } from 'payload/shared'
916
import React from 'react'
1017

11-
import { getDocPreferences } from '../Document/getDocPreferences.js'
12-
import { getDocumentData } from '../Document/getDocumentData.js'
1318
import { getDocumentPermissions } from '../Document/getDocumentPermissions.js'
1419
import { getIsLocked } from '../Document/getIsLocked.js'
1520
import { getVersions } from '../Document/getVersions.js'
16-
import { EditView } from '../Edit/index.js'
1721
import { AccountClient } from './index.client.js'
1822
import { Settings } from './Settings/index.js'
1923

@@ -154,7 +158,7 @@ export async function AccountView({ initPageResult, params, searchParams }: Admi
154158
<HydrateAuthProvider permissions={permissions} />
155159
{RenderServerComponent({
156160
Component: config.admin?.components?.views?.account?.Component,
157-
Fallback: EditView,
161+
Fallback: DefaultEditView,
158162
importMap: payload.importMap,
159163
serverProps: {
160164
doc: data,

packages/next/src/views/Account/metadata.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import type { GenerateViewMetadata } from '../Root/index.js'
22

3-
import { generateMetadata } from '../../utilities/meta.js'
3+
import { formatNextMetadata } from '../../utilities/meta.js'
44

55
export const generateAccountViewMetadata: GenerateViewMetadata = async ({ config, i18n: { t } }) =>
6-
generateMetadata({
6+
formatNextMetadata({
77
description: `${t('authentication:accountOfCurrentUser')}`,
88
keywords: `${t('authentication:account')}`,
99
serverURL: config.serverURL,

packages/next/src/views/CollectionTrash/metadata.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { getTranslation } from '@payloadcms/translations'
55

66
import type { GenerateViewMetadata } from '../Root/index.js'
77

8-
import { generateMetadata } from '../../utilities/meta.js'
8+
import { formatNextMetadata } from '../../utilities/meta.js'
99

1010
export const generateCollectionTrashMetadata = async (
1111
args: {
@@ -24,7 +24,7 @@ export const generateCollectionTrashMetadata = async (
2424

2525
title = `${title ? `${title} ` : title}${i18n.t('general:trash')}`
2626

27-
return generateMetadata({
27+
return formatNextMetadata({
2828
...(config.admin.meta || {}),
2929
description,
3030
keywords,

packages/next/src/views/CreateFirstUser/metadata.ts

Lines changed: 0 additions & 15 deletions
This file was deleted.

packages/next/src/views/Dashboard/metadata.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)