Skip to content

Commit abebd24

Browse files
authored
feat(next): export views, pass all props to custom dashboard view (#14094)
- Exports additional modules from `@payloadcms/next` like `DashboardView`, which are useful for when you provide your own view but want to render parts of the default view - Passes all props to custom dashboard views, giving you access to things like `req` - Makes use of `select` API in `payload.find` call of the dashboard view for improved performance
1 parent 9ceee8e commit abebd24

File tree

15 files changed

+98
-24
lines changed

15 files changed

+98
-24
lines changed

packages/next/package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,16 @@
6464
"import": "./src/exports/views.ts",
6565
"types": "./src/exports/views.ts",
6666
"default": "./src/exports/views.ts"
67+
},
68+
"./client": {
69+
"import": "./src/exports/client.ts",
70+
"types": "./src/exports/client.ts",
71+
"default": "./src/exports/client.ts"
72+
},
73+
"./rsc": {
74+
"import": "./src/exports/rsc.ts",
75+
"types": "./src/exports/rsc.ts",
76+
"default": "./src/exports/rsc.ts"
6777
}
6878
},
6979
"main": "./src/index.js",
@@ -177,6 +187,16 @@
177187
"import": "./dist/exports/views.js",
178188
"types": "./dist/exports/views.d.ts",
179189
"default": "./dist/exports/views.js"
190+
},
191+
"./client": {
192+
"import": "./dist/exports/client.js",
193+
"types": "./dist/exports/client.d.ts",
194+
"default": "./dist/exports/client.js"
195+
},
196+
"./rsc": {
197+
"import": "./dist/exports/rsc.js",
198+
"types": "./dist/exports/rsc.d.ts",
199+
"default": "./dist/exports/rsc.js"
180200
}
181201
},
182202
"main": "./dist/index.js",

packages/next/src/elements/DocumentHeader/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import './index.scss'
1313

1414
const baseClass = `doc-header`
1515

16+
/**
17+
* @internal
18+
*/
1619
export const DocumentHeader: React.FC<{
1720
AfterHeader?: React.ReactNode
1821
collectionConfig?: SanitizedCollectionConfig

packages/next/src/elements/Nav/NavHamburger/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import { Hamburger, useNav } from '@payloadcms/ui'
33
import React from 'react'
44

5+
/**
6+
* @internal
7+
*/
58
export const NavHamburger: React.FC<{
69
baseClass?: string
710
}> = ({ baseClass }) => {

packages/next/src/elements/Nav/NavWrapper/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import React from 'react'
44

55
import './index.scss'
66

7+
/**
8+
* @internal
9+
*/
710
export const NavWrapper: React.FC<{
811
baseClass?: string
912
children: React.ReactNode

packages/next/src/elements/Nav/index.client.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import React, { Fragment } from 'react'
1212

1313
const baseClass = 'nav'
1414

15+
/**
16+
* @internal
17+
*/
1518
export const DefaultNavClient: React.FC<{
1619
groups: ReturnType<typeof groupNavItems>
1720
navPreferences: NavPreferences

packages/next/src/esbuildEntry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export { RootLayout } from './layouts/Root/index.js'
2-
export { Dashboard as DashboardPage } from './views/Dashboard/index.js'
2+
export { DashboardView } from './views/Dashboard/index.js'
33
export { LoginView } from './views/Login/index.js'
44
export { RootPage } from './views/Root/index.js'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
'use client'
2+
3+
export { DefaultNavClient } from '../elements/Nav/index.client.js'
4+
export { NavHamburger } from '../elements/Nav/NavHamburger/index.js'
5+
export { NavWrapper } from '../elements/Nav/NavWrapper/index.js'

packages/next/src/exports/rsc.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export { DocumentHeader } from '../elements/DocumentHeader/index.js'
2+
export { Logo } from '../elements/Logo/index.js'
3+
export { DefaultNav } from '../elements/Nav/index.js'

packages/next/src/exports/views.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
export { AccountView } from '../views/Account/index.js'
2+
export {
3+
type DashboardViewClientProps,
4+
type DashboardViewServerProps,
5+
type DashboardViewServerPropsOnly,
6+
DefaultDashboard,
7+
} from '../views/Dashboard/Default/index.js'
8+
export { DashboardView } from '../views/Dashboard/index.js'
9+
10+
export { ListView, renderListView, type RenderListViewArgs } from '../views/List/index.js'
11+
export { LoginView } from '../views/Login/index.js'
112
export { NotFoundPage } from '../views/NotFound/index.js'
13+
214
export { type GenerateViewMetadata, RootPage } from '../views/Root/index.js'
315
export { generatePageMetadata } from '../views/Root/metadata.js'

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { EditView } from '../Edit/index.js'
1616
import { AccountClient } from './index.client.js'
1717
import { Settings } from './Settings/index.js'
1818

19-
export async function Account({ initPageResult, params, searchParams }: AdminViewServerProps) {
19+
export async function AccountView({ initPageResult, params, searchParams }: AdminViewServerProps) {
2020
const {
2121
languageOptions,
2222
locale,

0 commit comments

Comments
 (0)