@payloadcms/next 3.0.0-canary.98cbdb9 → 3.0.0-canary.9de3ffd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.scss +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/getPayloadHMR.d.ts +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.js +3 -2
- package/dist/utilities/getPayloadHMR.js.map +1 -1
- package/dist/utilities/meta.js +4 -1
- package/dist/utilities/meta.js.map +1 -1
- package/dist/views/API/meta.d.ts.map +1 -1
- package/dist/views/API/meta.js +10 -6
- package/dist/views/API/meta.js.map +1 -1
- package/dist/views/Account/Settings/index.d.ts +3 -3
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +1 -0
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Document/getCustomViewByRoute.d.ts +4 -1
- package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
- package/dist/views/Document/getCustomViewByRoute.js +16 -6
- package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
- package/dist/views/Document/getMetaBySegment.d.ts +2 -1
- package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
- package/dist/views/Document/getMetaBySegment.js +73 -28
- package/dist/views/Document/getMetaBySegment.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts +9 -3
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +90 -47
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +1 -0
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/meta.d.ts.map +1 -1
- package/dist/views/Edit/meta.js +30 -19
- package/dist/views/Edit/meta.js.map +1 -1
- package/dist/views/List/Default/index.d.ts.map +1 -1
- package/dist/views/List/Default/index.js +57 -43
- package/dist/views/List/Default/index.js.map +1 -1
- package/dist/views/List/Default/index.scss +3 -11
- package/dist/views/LivePreview/meta.d.ts.map +1 -1
- package/dist/views/LivePreview/meta.js +2 -1
- package/dist/views/LivePreview/meta.js.map +1 -1
- package/dist/views/Root/generateCustomViewMetadata.d.ts +11 -0
- package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -0
- package/dist/views/Root/generateCustomViewMetadata.js +23 -0
- package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
- package/dist/views/Root/getCustomViewByRoute.d.ts +6 -2
- package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByRoute.js +20 -5
- package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +7 -7
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/meta.d.ts.map +1 -1
- package/dist/views/Root/meta.js +19 -2
- package/dist/views/Root/meta.js.map +1 -1
- package/dist/views/Version/meta.d.ts.map +1 -1
- package/dist/views/Version/meta.js +24 -19
- package/dist/views/Version/meta.js.map +1 -1
- package/dist/views/Versions/meta.d.ts.map +1 -1
- package/dist/views/Versions/meta.js +24 -19
- package/dist/views/Versions/meta.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
|
-
import { Button, DeleteMany, EditMany, Gutter, ListControls, ListSelection, Pagination, PerPage,
|
|
4
|
+
import { BulkUploadDrawer, Button, DeleteMany, EditMany, Gutter, ListControls, ListHeader, ListSelection, Pagination, PerPage, PopupList, PublishMany, RelationshipProvider, RenderComponent, SelectionProvider, SetViewActions, StaggeredShimmers, Table, UnpublishMany, ViewDescription, bulkUploadDrawerSlug, useConfig, useEditDepth, useListInfo, useListQuery, useModal, useRouteCache, useSearchParams, useStepNav, useTranslation, useWindowInfo } from '@payloadcms/ui';
|
|
5
5
|
import LinkImport from 'next/link.js';
|
|
6
6
|
import { formatFilesize, isNumber } from 'payload/shared';
|
|
7
7
|
import React, { Fragment, useEffect } from 'react';
|
|
8
8
|
const baseClass = 'collection-list';
|
|
9
9
|
const Link = LinkImport.default || LinkImport;
|
|
10
10
|
export const DefaultListView = ()=>{
|
|
11
|
-
const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo();
|
|
11
|
+
const { Header, beforeActions, collectionSlug, disableBulkDelete, disableBulkEdit, hasCreatePermission, newDocumentURL } = useListInfo();
|
|
12
12
|
const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery();
|
|
13
13
|
const { searchParams } = useSearchParams();
|
|
14
|
+
const { openModal } = useModal();
|
|
15
|
+
const { clearRouteCache } = useRouteCache();
|
|
14
16
|
const { getEntityConfig } = useConfig();
|
|
15
17
|
const collectionConfig = getEntityConfig({
|
|
16
18
|
collectionSlug
|
|
17
19
|
});
|
|
18
20
|
const { admin: { components: { Description, afterList, afterListTable, beforeList, beforeListTable, views: { list: { actions } } }, description }, fields, labels } = collectionConfig;
|
|
19
|
-
const { i18n } = useTranslation();
|
|
21
|
+
const { i18n, t } = useTranslation();
|
|
20
22
|
const drawerDepth = useEditDepth();
|
|
21
23
|
const { setStepNav } = useStepNav();
|
|
22
24
|
const { breakpoints: { s: smallBreak } } = useWindowInfo();
|
|
23
25
|
let docs = data.docs || [];
|
|
24
|
-
|
|
26
|
+
const isUploadCollection = Boolean(collectionConfig.upload);
|
|
27
|
+
if (isUploadCollection) {
|
|
25
28
|
docs = docs?.map((doc)=>{
|
|
26
29
|
return {
|
|
27
30
|
...doc,
|
|
@@ -57,35 +60,41 @@ export const DefaultListView = ()=>{
|
|
|
57
60
|
children: /*#__PURE__*/ _jsxs(Gutter, {
|
|
58
61
|
className: `${baseClass}__wrap`,
|
|
59
62
|
children: [
|
|
60
|
-
/*#__PURE__*/
|
|
61
|
-
|
|
62
|
-
children:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
label: getTranslation(labels?.singular, i18n)
|
|
70
|
-
}),
|
|
71
|
-
to: newDocumentURL,
|
|
72
|
-
children: i18n.t('general:createNew')
|
|
73
|
-
}),
|
|
74
|
-
!smallBreak && /*#__PURE__*/ _jsx(ListSelection, {
|
|
75
|
-
label: getTranslation(collectionConfig.labels.plural, i18n)
|
|
76
|
-
}),
|
|
77
|
-
description && /*#__PURE__*/ _jsx("div", {
|
|
78
|
-
className: `${baseClass}__sub-header`,
|
|
79
|
-
children: /*#__PURE__*/ _jsx(RenderComponent, {
|
|
80
|
-
Component: ViewDescription,
|
|
81
|
-
clientProps: {
|
|
82
|
-
description
|
|
83
|
-
},
|
|
84
|
-
mappedComponent: Description
|
|
63
|
+
Header || /*#__PURE__*/ _jsxs(ListHeader, {
|
|
64
|
+
heading: getTranslation(labels?.plural, i18n),
|
|
65
|
+
children: [
|
|
66
|
+
hasCreatePermission && /*#__PURE__*/ _jsx(Button, {
|
|
67
|
+
Link: Link,
|
|
68
|
+
SubMenuPopupContent: isUploadCollection && collectionConfig.upload.bulkUpload ? /*#__PURE__*/ _jsx(PopupList.ButtonGroup, {
|
|
69
|
+
children: /*#__PURE__*/ _jsx(PopupList.Button, {
|
|
70
|
+
onClick: ()=>openModal(bulkUploadDrawerSlug),
|
|
71
|
+
children: t('upload:bulkUpload')
|
|
85
72
|
})
|
|
73
|
+
}) : null,
|
|
74
|
+
"aria-label": i18n.t('general:createNewLabel', {
|
|
75
|
+
label: getTranslation(labels?.singular, i18n)
|
|
76
|
+
}),
|
|
77
|
+
buttonStyle: "pill",
|
|
78
|
+
el: "link",
|
|
79
|
+
size: "small",
|
|
80
|
+
to: newDocumentURL,
|
|
81
|
+
children: i18n.t('general:createNew')
|
|
82
|
+
}),
|
|
83
|
+
!smallBreak && /*#__PURE__*/ _jsx(ListSelection, {
|
|
84
|
+
label: getTranslation(collectionConfig.labels.plural, i18n)
|
|
85
|
+
}),
|
|
86
|
+
(description || Description) && /*#__PURE__*/ _jsx("div", {
|
|
87
|
+
className: `${baseClass}__sub-header`,
|
|
88
|
+
children: /*#__PURE__*/ _jsx(ViewDescription, {
|
|
89
|
+
Description: Description,
|
|
90
|
+
description: description
|
|
86
91
|
})
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
}),
|
|
93
|
+
isUploadCollection && collectionConfig.upload.bulkUpload ? /*#__PURE__*/ _jsx(BulkUploadDrawer, {
|
|
94
|
+
collectionSlug: collectionSlug,
|
|
95
|
+
onSuccess: ()=>clearRouteCache()
|
|
96
|
+
}) : null
|
|
97
|
+
]
|
|
89
98
|
}),
|
|
90
99
|
/*#__PURE__*/ _jsx(ListControls, {
|
|
91
100
|
collectionConfig: collectionConfig,
|
|
@@ -141,7 +150,7 @@ export const DefaultListView = ()=>{
|
|
|
141
150
|
limit: data.limit,
|
|
142
151
|
nextPage: data.nextPage,
|
|
143
152
|
numberOfNeighbors: 1,
|
|
144
|
-
onChange: handlePageChange,
|
|
153
|
+
onChange: (page)=>void handlePageChange(page),
|
|
145
154
|
page: data.page,
|
|
146
155
|
prevPage: data.prevPage,
|
|
147
156
|
totalPages: data.totalPages
|
|
@@ -161,7 +170,7 @@ export const DefaultListView = ()=>{
|
|
|
161
170
|
]
|
|
162
171
|
}),
|
|
163
172
|
/*#__PURE__*/ _jsx(PerPage, {
|
|
164
|
-
handleChange: handlePerPageChange,
|
|
173
|
+
handleChange: (limit)=>void handlePerPageChange(limit),
|
|
165
174
|
limit: isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit,
|
|
166
175
|
limits: collectionConfig?.admin?.pagination?.limits,
|
|
167
176
|
resetPage: data.totalDocs <= data.pagingCounter
|
|
@@ -175,17 +184,22 @@ export const DefaultListView = ()=>{
|
|
|
175
184
|
/*#__PURE__*/ _jsxs("div", {
|
|
176
185
|
className: `${baseClass}__list-selection-actions`,
|
|
177
186
|
children: [
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
+
beforeActions && beforeActions,
|
|
188
|
+
!disableBulkEdit && /*#__PURE__*/ _jsxs(Fragment, {
|
|
189
|
+
children: [
|
|
190
|
+
/*#__PURE__*/ _jsx(EditMany, {
|
|
191
|
+
collection: collectionConfig,
|
|
192
|
+
fields: fields
|
|
193
|
+
}),
|
|
194
|
+
/*#__PURE__*/ _jsx(PublishMany, {
|
|
195
|
+
collection: collectionConfig
|
|
196
|
+
}),
|
|
197
|
+
/*#__PURE__*/ _jsx(UnpublishMany, {
|
|
198
|
+
collection: collectionConfig
|
|
199
|
+
})
|
|
200
|
+
]
|
|
187
201
|
}),
|
|
188
|
-
/*#__PURE__*/ _jsx(DeleteMany, {
|
|
202
|
+
!disableBulkDelete && /*#__PURE__*/ _jsx(DeleteMany, {
|
|
189
203
|
collection: collectionConfig
|
|
190
204
|
})
|
|
191
205
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListSelection,\n Pagination,\n PerPage,\n Pill,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo()\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n if (collectionConfig.upload) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n <header className={`${baseClass}__header`}>\n {Header || (\n <Fragment>\n <h1>{getTranslation(labels?.plural, i18n)}</h1>\n {hasCreatePermission && (\n <Pill\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Pill>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {description && (\n <div className={`${baseClass}__sub-header`}>\n <RenderComponent\n Component={ViewDescription}\n clientProps={{ description }}\n mappedComponent={Description}\n />\n </div>\n )}\n </Fragment>\n )}\n </header>\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"names":["getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListSelection","Pagination","PerPage","Pill","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","useConfig","useEditDepth","useListInfo","useListQuery","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","collectionSlug","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","getEntityConfig","collectionConfig","admin","components","Description","afterList","afterListTable","beforeList","beforeListTable","views","list","actions","description","fields","labels","i18n","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","upload","map","doc","filesize","label","plural","div","className","mappedComponent","totalDocs","header","h1","aria-label","t","singular","to","Component","clientProps","join","count","length","customCellContext","uploadConfig","p","el","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection"],"mappings":"AAAA;;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SACEC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,MAAM,EACNC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,WAAW,EACXC,oBAAoB,EACpBC,eAAe,EACfC,iBAAiB,EACjBC,cAAc,EACdC,iBAAiB,EACjBC,KAAK,EACLC,aAAa,EACbC,eAAe,EACfC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,eAAe,EACfC,UAAU,EACVC,cAAc,EACdC,aAAa,QACR,iBAAgB;AACvB,OAAOC,gBAAgB,eAAc;AACrC,SAASC,cAAc,EAAEC,QAAQ,QAAQ,iBAAgB;AACzD,OAAOC,SAASC,QAAQ,EAAEC,SAAS,QAAQ,QAAO;AAIlD,MAAMC,YAAY;AAClB,MAAMC,OAAQP,WAAWQ,OAAO,IAAIR;AAEpC,OAAO,MAAMS,kBAA4B;IACvC,MAAM,EAAEC,MAAM,EAAEC,cAAc,EAAEC,mBAAmB,EAAEC,cAAc,EAAE,GAAGnB;IACxE,MAAM,EAAEoB,IAAI,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,mBAAmB,EAAE,GAAGtB;IACtE,MAAM,EAAEuB,YAAY,EAAE,GAAGtB;IAEzB,MAAM,EAAEuB,eAAe,EAAE,GAAG3B;IAE5B,MAAM4B,mBAAmBD,gBAAgB;QAAER;IAAe;IAE1D,MAAM,EACJU,OAAO,EACLC,YAAY,EACVC,WAAW,EACXC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,eAAe,EACfC,OAAO,EACLC,MAAM,EAAEC,OAAO,EAAE,EAClB,EACF,EACDC,WAAW,EACZ,EACDC,MAAM,EACNC,MAAM,EACP,GAAGb;IAEJ,MAAM,EAAEc,IAAI,EAAE,GAAGpC;IAEjB,MAAMqC,cAAc1C;IAEpB,MAAM,EAAE2C,UAAU,EAAE,GAAGvC;IAEvB,MAAM,EACJwC,aAAa,EAAEC,GAAGC,UAAU,EAAE,EAC/B,GAAGxC;IAEJ,IAAIyC,OAAO1B,KAAK0B,IAAI,IAAI,EAAE;IAE1B,IAAIpB,iBAAiBqB,MAAM,EAAE;QAC3BD,OAAOA,MAAME,IAAI,CAACC;YAChB,OAAO;gBACL,GAAGA,GAAG;gBACNC,UAAU3C,eAAe0C,IAAIC,QAAQ;YACvC;QACF;IACF;IAEAvC,UAAU;QACR,IAAI8B,eAAe,GAAG;YACpBC,WAAW;gBACT;oBACES,OAAOZ,QAAQa;gBACjB;aACD;QACH;IACF,GAAG;QAACV;QAAYH;QAAQE;KAAY;IAEpC,qBACE,MAACY;QAAIC,WAAW,CAAC,EAAE1C,UAAU,CAAC,EAAEA,UAAU,EAAE,EAAEK,eAAe,CAAC;;0BAC5D,KAACxB;gBAAe2C,SAASA;;0BACzB,KAAC7C;gBAAgBgE,iBAAiBvB;;0BAClC,KAACxC;gBAAkBsD,MAAM1B,KAAK0B,IAAI;gBAAEU,WAAWpC,KAAKoC,SAAS;0BAC3D,cAAA,MAACzE;oBAAOuE,WAAW,CAAC,EAAE1C,UAAU,MAAM,CAAC;;sCACrC,KAAC6C;4BAAOH,WAAW,CAAC,EAAE1C,UAAU,QAAQ,CAAC;sCACtCI,wBACC,MAACN;;kDACC,KAACgD;kDAAI/E,eAAe4D,QAAQa,QAAQZ;;oCACnCtB,qCACC,KAAC9B;wCACCuE,cAAYnB,KAAKoB,CAAC,CAAC,0BAA0B;4CAC3CT,OAAOxE,eAAe4D,QAAQsB,UAAUrB;wCAC1C;wCACAsB,IAAI3C;kDAEHqB,KAAKoB,CAAC,CAAC;;oCAGX,CAACf,4BACA,KAAC5D;wCAAckE,OAAOxE,eAAe+C,iBAAiBa,MAAM,CAACa,MAAM,EAAEZ;;oCAEtEH,6BACC,KAACgB;wCAAIC,WAAW,CAAC,EAAE1C,UAAU,YAAY,CAAC;kDACxC,cAAA,KAACrB;4CACCwE,WAAWlE;4CACXmE,aAAa;gDAAE3B;4CAAY;4CAC3BkB,iBAAiB1B;;;;;;sCAO7B,KAAC7C;4BAAa0C,kBAAkBA;4BAAkBY,QAAQA;;sCAC1D,KAAC/C;4BAAgBgE,iBAAiBtB;;wBACjC,CAACb,KAAK0B,IAAI,kBACT,KAACpD;4BACC4D,WAAW;gCAAC,CAAC,EAAE1C,UAAU,SAAS,CAAC;gCAAE,CAAC,EAAEA,UAAU,eAAe,CAAC;6BAAC,CAACqD,IAAI,CAAC;4BACzEC,OAAO;;wBAGV9C,KAAK0B,IAAI,IAAI1B,KAAK0B,IAAI,CAACqB,MAAM,GAAG,mBAC/B,KAAC7E;sCACC,cAAA,KAACK;gCACCyE,mBAAmB;oCACjBnD;oCACAoD,cAAc3C,iBAAiBqB,MAAM;gCACvC;gCACA3B,MAAM0B;gCACNR,QAAQA;;;wBAIblB,KAAK0B,IAAI,IAAI1B,KAAK0B,IAAI,CAACqB,MAAM,KAAK,mBACjC,MAACd;4BAAIC,WAAW,CAAC,EAAE1C,UAAU,YAAY,CAAC;;8CACxC,KAAC0D;8CAAG9B,KAAKoB,CAAC,CAAC,qBAAqB;wCAAET,OAAOxE,eAAe4D,QAAQa,QAAQZ;oCAAM;;gCAC7EtB,uBAAuBC,gCACtB,KAACvC;oCAAOiC,MAAMA;oCAAM0D,IAAG;oCAAOT,IAAI3C;8CAC/BqB,KAAKoB,CAAC,CAAC,0BAA0B;wCAChCT,OAAOxE,eAAe4D,QAAQsB,UAAUrB;oCAC1C;;;;sCAKR,KAACjD;4BAAgBgE,iBAAiBxB;;wBACjCX,KAAK0B,IAAI,IAAI1B,KAAK0B,IAAI,CAACqB,MAAM,GAAG,mBAC/B,MAACd;4BAAIC,WAAW,CAAC,EAAE1C,UAAU,eAAe,CAAC;;8CAC3C,KAAC1B;oCACCsF,aAAapD,KAAKoD,WAAW;oCAC7BC,aAAarD,KAAKqD,WAAW;oCAC7BC,OAAOtD,KAAKsD,KAAK;oCACjBC,UAAUvD,KAAKuD,QAAQ;oCACvBC,mBAAmB;oCACnBC,UAAUvD;oCACVwD,MAAM1D,KAAK0D,IAAI;oCACfC,UAAU3D,KAAK2D,QAAQ;oCACvBC,YAAY5D,KAAK4D,UAAU;;gCAE5B5D,MAAMoC,YAAY,mBACjB,MAAC9C;;sDACC,MAAC2C;4CAAIC,WAAW,CAAC,EAAE1C,UAAU,WAAW,CAAC;;gDACtCQ,KAAK0D,IAAI,GAAG1D,KAAKsD,KAAK,GAAItD,CAAAA,KAAKsD,KAAK,GAAG,CAAA;gDAAG;gDAC1CtD,KAAK4D,UAAU,GAAG,KAAK5D,KAAK4D,UAAU,KAAK5D,KAAK0D,IAAI,GACjD1D,KAAKsD,KAAK,GAAGtD,KAAK0D,IAAI,GACtB1D,KAAKoC,SAAS;gDAAE;gDACnBhB,KAAKoB,CAAC,CAAC;gDAAc;gDAAExC,KAAKoC,SAAS;;;sDAExC,KAACrE;4CACC8F,cAAc1D;4CACdmD,OACElE,SAASgB,cAAckD,SAASQ,OAAO1D,aAAakD,KAAK,IAAIrD;4CAE/D8D,QAAQzD,kBAAkBC,OAAOyD,YAAYD;4CAC7CE,WAAWjE,KAAKoC,SAAS,IAAIpC,KAAKkE,aAAa;;wCAEhDzC,4BACC,MAACQ;4CAAIC,WAAW,CAAC,EAAE1C,UAAU,gBAAgB,CAAC;;8DAC5C,KAAC3B;oDAAckE,OAAOxE,eAAe+C,iBAAiBa,MAAM,CAACa,MAAM,EAAEZ;;8DACrE,MAACa;oDAAIC,WAAW,CAAC,EAAE1C,UAAU,wBAAwB,CAAC;;sEACpD,KAAC9B;4DAASyG,YAAY7D;4DAAkBY,QAAQA;;sEAChD,KAACjD;4DAAYkG,YAAY7D;;sEACzB,KAAC9B;4DAAc2F,YAAY7D;;sEAC3B,KAAC7C;4DAAW0G,YAAY7D;;;;;;;;;;;;;0BAU1C,KAACnC;gBAAgBgE,iBAAiBzB;;;;AAGxC,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n BulkUploadDrawer,\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListHeader,\n ListSelection,\n Pagination,\n PerPage,\n PopupList,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n bulkUploadDrawerSlug,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useModal,\n useRouteCache,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const {\n Header,\n beforeActions,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n newDocumentURL,\n } = useListInfo()\n\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n const { openModal } = useModal()\n const { clearRouteCache } = useRouteCache()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n, t } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n const isUploadCollection = Boolean(collectionConfig.upload)\n\n if (isUploadCollection) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n {Header || (\n <ListHeader heading={getTranslation(labels?.plural, i18n)}>\n {hasCreatePermission && (\n <Button\n Link={Link}\n SubMenuPopupContent={\n isUploadCollection && collectionConfig.upload.bulkUpload ? (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => openModal(bulkUploadDrawerSlug)}>\n {t('upload:bulkUpload')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n ) : null\n }\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n buttonStyle=\"pill\"\n el=\"link\"\n size=\"small\"\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Button>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {(description || Description) && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription Description={Description} description={description} />\n </div>\n )}\n {isUploadCollection && collectionConfig.upload.bulkUpload ? (\n <BulkUploadDrawer\n collectionSlug={collectionSlug}\n onSuccess={() => clearRouteCache()}\n />\n ) : null}\n </ListHeader>\n )}\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"names":["getTranslation","BulkUploadDrawer","Button","DeleteMany","EditMany","Gutter","ListControls","ListHeader","ListSelection","Pagination","PerPage","PopupList","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","bulkUploadDrawerSlug","useConfig","useEditDepth","useListInfo","useListQuery","useModal","useRouteCache","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","beforeActions","collectionSlug","disableBulkDelete","disableBulkEdit","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","openModal","clearRouteCache","getEntityConfig","collectionConfig","admin","components","Description","afterList","afterListTable","beforeList","beforeListTable","views","list","actions","description","fields","labels","i18n","t","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","isUploadCollection","Boolean","upload","map","doc","filesize","label","plural","div","className","mappedComponent","totalDocs","heading","SubMenuPopupContent","bulkUpload","ButtonGroup","onClick","aria-label","singular","buttonStyle","el","size","to","onSuccess","join","count","length","customCellContext","uploadConfig","p","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection"],"mappings":"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"}
|
|
@@ -11,21 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: flex-end;
|
|
17
|
-
flex-wrap: wrap;
|
|
18
|
-
gap: base(0.8);
|
|
19
|
-
|
|
20
|
-
h1 {
|
|
21
|
-
margin: 0;
|
|
22
|
-
}
|
|
23
|
-
|
|
14
|
+
.list-header {
|
|
24
15
|
a {
|
|
25
16
|
text-decoration: none;
|
|
26
17
|
}
|
|
27
18
|
|
|
28
|
-
.
|
|
19
|
+
.btn--withoutPopup,
|
|
20
|
+
.btn--withPopup {
|
|
29
21
|
position: relative;
|
|
30
22
|
margin: 0 0 base(0.2);
|
|
31
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAc3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/LivePreview/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata as generateDocumentMetadata } from '../Edit/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n}): Promise<Metadata> =>\n generateDocumentMetadata({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n"],"names":["generateMetadata","generateDocumentMetadata","collectionConfig","config","globalConfig","i18n","isEditing"],"mappings":"AAIA,SAASA,oBAAoBC,wBAAwB,QAAQ,kBAAiB;AAE9E,OAAO,MAAMD,mBAA6C,OAAO,EAC/DE,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACJC,SAAS,EACV,GACCL,yBAAyB;QACvBC;QACAC;QACAC;QACAC;QACAC;
|
|
1
|
+
{"version":3,"sources":["../../../src/views/LivePreview/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata as generateDocumentMetadata } from '../Edit/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n}): Promise<Metadata> =>\n generateDocumentMetadata({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view: 'livePreview',\n })\n"],"names":["generateMetadata","generateDocumentMetadata","collectionConfig","config","globalConfig","i18n","isEditing","view"],"mappings":"AAIA,SAASA,oBAAoBC,wBAAwB,QAAQ,kBAAiB;AAE9E,OAAO,MAAMD,mBAA6C,OAAO,EAC/DE,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACJC,SAAS,EACV,GACCL,yBAAyB;QACvBC;QACAC;QACAC;QACAC;QACAC;QACAC,MAAM;IACR,GAAE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { I18nClient } from '@payloadcms/translations';
|
|
2
|
+
import type { Metadata } from 'next';
|
|
3
|
+
import type { AdminViewConfig, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload';
|
|
4
|
+
export declare const generateCustomViewMetadata: (args: {
|
|
5
|
+
collectionConfig?: SanitizedCollectionConfig;
|
|
6
|
+
config: SanitizedConfig;
|
|
7
|
+
globalConfig?: SanitizedGlobalConfig;
|
|
8
|
+
i18n: I18nClient;
|
|
9
|
+
viewConfig: AdminViewConfig;
|
|
10
|
+
}) => Promise<Metadata>;
|
|
11
|
+
//# sourceMappingURL=generateCustomViewMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateCustomViewMetadata.d.ts","sourceRoot":"","sources":["../../../src/views/Root/generateCustomViewMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,eAAO,MAAM,0BAA0B,SAAgB;IACrD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,eAAe,CAAA;CAC5B,KAAG,OAAO,CAAC,QAAQ,CAwBnB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { meta } from '../../utilities/meta.js';
|
|
2
|
+
export const generateCustomViewMetadata = async (args)=>{
|
|
3
|
+
const { config, // i18n: { t },
|
|
4
|
+
viewConfig } = args;
|
|
5
|
+
if (!viewConfig) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return meta({
|
|
9
|
+
description: `Payload`,
|
|
10
|
+
keywords: `Payload`,
|
|
11
|
+
serverURL: config.serverURL,
|
|
12
|
+
title: 'Payload',
|
|
13
|
+
...config.admin.meta || {},
|
|
14
|
+
...viewConfig.meta || {},
|
|
15
|
+
openGraph: {
|
|
16
|
+
title: 'Payload',
|
|
17
|
+
...config.admin.meta?.openGraph || {},
|
|
18
|
+
...viewConfig.meta?.openGraph || {}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=generateCustomViewMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Root/generateCustomViewMetadata.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type {\n AdminViewConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateCustomViewMetadata = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n i18n: I18nClient\n viewConfig: AdminViewConfig\n}): Promise<Metadata> => {\n const {\n config,\n // i18n: { t },\n viewConfig,\n } = args\n\n if (!viewConfig) {\n return null\n }\n\n return meta({\n description: `Payload`,\n keywords: `Payload`,\n serverURL: config.serverURL,\n title: 'Payload',\n ...(config.admin.meta || {}),\n ...(viewConfig.meta || {}),\n openGraph: {\n title: 'Payload',\n ...(config.admin.meta?.openGraph || {}),\n ...(viewConfig.meta?.openGraph || {}),\n },\n })\n}\n"],"names":["meta","generateCustomViewMetadata","args","config","viewConfig","description","keywords","serverURL","title","admin","openGraph"],"mappings":"AASA,SAASA,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,6BAA6B,OAAOC;IAO/C,MAAM,EACJC,MAAM,EACN,eAAe;IACfC,UAAU,EACX,GAAGF;IAEJ,IAAI,CAACE,YAAY;QACf,OAAO;IACT;IAEA,OAAOJ,KAAK;QACVK,aAAa,CAAC,OAAO,CAAC;QACtBC,UAAU,CAAC,OAAO,CAAC;QACnBC,WAAWJ,OAAOI,SAAS;QAC3BC,OAAO;QACP,GAAIL,OAAOM,KAAK,CAACT,IAAI,IAAI,CAAC,CAAC;QAC3B,GAAII,WAAWJ,IAAI,IAAI,CAAC,CAAC;QACzBU,WAAW;YACTF,OAAO;YACP,GAAIL,OAAOM,KAAK,CAACT,IAAI,EAAEU,aAAa,CAAC,CAAC;YACtC,GAAIN,WAAWJ,IAAI,EAAEU,aAAa,CAAC,CAAC;QACtC;IACF;AACF,EAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import type { SanitizedConfig } from 'payload';
|
|
1
|
+
import type { AdminViewConfig, SanitizedConfig } from 'payload';
|
|
2
2
|
import type { ViewFromConfig } from './getViewFromConfig.js';
|
|
3
3
|
export declare const getCustomViewByRoute: ({ config, currentRoute: currentRouteWithAdmin, }: {
|
|
4
4
|
config: SanitizedConfig;
|
|
5
5
|
currentRoute: string;
|
|
6
|
-
}) =>
|
|
6
|
+
}) => {
|
|
7
|
+
view: ViewFromConfig;
|
|
8
|
+
viewConfig: AdminViewConfig;
|
|
9
|
+
viewKey: string;
|
|
10
|
+
};
|
|
7
11
|
//# sourceMappingURL=getCustomViewByRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getCustomViewByRoute.
|
|
1
|
+
{"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getCustomViewByRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAI5D,eAAO,MAAM,oBAAoB,qDAG9B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB,KAAG;IACF,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,eAAe,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;CAiDhB,CAAA"}
|
|
@@ -2,20 +2,35 @@ import { isPathMatchingRoute } from './isPathMatchingRoute.js';
|
|
|
2
2
|
export const getCustomViewByRoute = ({ config, currentRoute: currentRouteWithAdmin })=>{
|
|
3
3
|
const { admin: { components: { views } }, routes: { admin: adminRoute } } = config;
|
|
4
4
|
const currentRoute = currentRouteWithAdmin.replace(adminRoute, '');
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
let viewKey;
|
|
6
|
+
const foundViewConfig = views && typeof views === 'object' && Object.entries(views).find(([key, view])=>{
|
|
7
|
+
const isMatching = isPathMatchingRoute({
|
|
7
8
|
currentRoute,
|
|
8
9
|
exact: view.exact,
|
|
9
10
|
path: view.path,
|
|
10
11
|
sensitive: view.sensitive,
|
|
11
12
|
strict: view.strict
|
|
12
13
|
});
|
|
13
|
-
|
|
14
|
+
if (isMatching) {
|
|
15
|
+
viewKey = key;
|
|
16
|
+
}
|
|
17
|
+
return isMatching;
|
|
18
|
+
})?.[1] || undefined;
|
|
14
19
|
if (!foundViewConfig) {
|
|
15
|
-
return
|
|
20
|
+
return {
|
|
21
|
+
view: {
|
|
22
|
+
Component: null
|
|
23
|
+
},
|
|
24
|
+
viewConfig: null,
|
|
25
|
+
viewKey: null
|
|
26
|
+
};
|
|
16
27
|
}
|
|
17
28
|
return {
|
|
18
|
-
|
|
29
|
+
view: {
|
|
30
|
+
payloadComponent: foundViewConfig.Component
|
|
31
|
+
},
|
|
32
|
+
viewConfig: foundViewConfig,
|
|
33
|
+
viewKey
|
|
19
34
|
};
|
|
20
35
|
};
|
|
21
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Root/getCustomViewByRoute.
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Root/getCustomViewByRoute.ts"],"sourcesContent":["import type { AdminViewConfig, SanitizedConfig } from 'payload'\n\nimport type { ViewFromConfig } from './getViewFromConfig.js'\n\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n config,\n currentRoute: currentRouteWithAdmin,\n}: {\n config: SanitizedConfig\n currentRoute: string\n}): {\n view: ViewFromConfig\n viewConfig: AdminViewConfig\n viewKey: string\n} => {\n const {\n admin: {\n components: { views },\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = currentRouteWithAdmin.replace(adminRoute, '')\n let viewKey: string\n\n const foundViewConfig =\n (views &&\n typeof views === 'object' &&\n Object.entries(views).find(([key, view]) => {\n const isMatching = isPathMatchingRoute({\n currentRoute,\n exact: view.exact,\n path: view.path,\n sensitive: view.sensitive,\n strict: view.strict,\n })\n\n if (isMatching) {\n viewKey = key\n }\n\n return isMatching\n })?.[1]) ||\n undefined\n\n if (!foundViewConfig) {\n return {\n view: {\n Component: null,\n },\n viewConfig: null,\n viewKey: null,\n }\n }\n\n return {\n view: {\n payloadComponent: foundViewConfig.Component,\n },\n viewConfig: foundViewConfig,\n viewKey,\n }\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","config","currentRoute","currentRouteWithAdmin","admin","components","views","routes","adminRoute","replace","viewKey","foundViewConfig","Object","entries","find","key","view","isMatching","exact","path","sensitive","strict","undefined","Component","viewConfig","payloadComponent"],"mappings":"AAIA,SAASA,mBAAmB,QAAQ,2BAA0B;AAE9D,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,MAAM,EACNC,cAAcC,qBAAqB,EAIpC;IAKC,MAAM,EACJC,OAAO,EACLC,YAAY,EAAEC,KAAK,EAAE,EACtB,EACDC,QAAQ,EAAEH,OAAOI,UAAU,EAAE,EAC9B,GAAGP;IAEJ,MAAMC,eAAeC,sBAAsBM,OAAO,CAACD,YAAY;IAC/D,IAAIE;IAEJ,MAAMC,kBACJ,AAACL,SACC,OAAOA,UAAU,YACjBM,OAAOC,OAAO,CAACP,OAAOQ,IAAI,CAAC,CAAC,CAACC,KAAKC,KAAK;QACrC,MAAMC,aAAalB,oBAAoB;YACrCG;YACAgB,OAAOF,KAAKE,KAAK;YACjBC,MAAMH,KAAKG,IAAI;YACfC,WAAWJ,KAAKI,SAAS;YACzBC,QAAQL,KAAKK,MAAM;QACrB;QAEA,IAAIJ,YAAY;YACdP,UAAUK;QACZ;QAEA,OAAOE;IACT,IAAI,CAAC,EAAE,IACTK;IAEF,IAAI,CAACX,iBAAiB;QACpB,OAAO;YACLK,MAAM;gBACJO,WAAW;YACb;YACAC,YAAY;YACZd,SAAS;QACX;IACF;IAEA,OAAO;QACLM,MAAM;YACJS,kBAAkBd,gBAAgBY,SAAS;QAC7C;QACAC,YAAYb;QACZD;IACF;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.
|
|
1
|
+
{"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA4BjE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC,CAAA;AAYD,eAAO,MAAM,iBAAiB,6EAO3B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,KAAG;IACF,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;CA6JpC,CAAA"}
|
|
@@ -58,7 +58,7 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
|
|
|
58
58
|
{
|
|
59
59
|
// users can override the default routes via `admin.routes` config
|
|
60
60
|
// i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}
|
|
61
|
-
let
|
|
61
|
+
let viewKey;
|
|
62
62
|
if (config.admin.routes) {
|
|
63
63
|
const matchedRoute = Object.entries(config.admin.routes).find(([, route])=>{
|
|
64
64
|
return isPathMatchingRoute({
|
|
@@ -71,10 +71,10 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
|
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
73
|
if (matchedRoute) {
|
|
74
|
-
|
|
74
|
+
viewKey = matchedRoute[0];
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
if (oneSegmentViews[
|
|
77
|
+
if (oneSegmentViews[viewKey]) {
|
|
78
78
|
// --> /account
|
|
79
79
|
// --> /create-first-user
|
|
80
80
|
// --> /forgot
|
|
@@ -83,11 +83,11 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
|
|
|
83
83
|
// --> /logout-inactivity
|
|
84
84
|
// --> /unauthorized
|
|
85
85
|
ViewToRender = {
|
|
86
|
-
Component: oneSegmentViews[
|
|
86
|
+
Component: oneSegmentViews[viewKey]
|
|
87
87
|
};
|
|
88
|
-
templateClassName = baseClasses[
|
|
88
|
+
templateClassName = baseClasses[viewKey];
|
|
89
89
|
templateType = 'minimal';
|
|
90
|
-
if (
|
|
90
|
+
if (viewKey === 'account') {
|
|
91
91
|
initPageOptions.redirectUnauthenticatedUser = true;
|
|
92
92
|
templateType = 'default';
|
|
93
93
|
}
|
|
@@ -163,7 +163,7 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
|
|
|
163
163
|
ViewToRender = getCustomViewByRoute({
|
|
164
164
|
config,
|
|
165
165
|
currentRoute
|
|
166
|
-
});
|
|
166
|
+
})?.view;
|
|
167
167
|
}
|
|
168
168
|
return {
|
|
169
169
|
DefaultView: ViewToRender,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Root/getViewFromConfig.tsx"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, ImportMap, SanitizedConfig } from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { ForgotPasswordView, forgotPasswordBaseClass } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { LoginView, loginBaseClass } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewProps>\n payloadComponent?: AdminViewComponent\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}): {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n templateClassName: string\n templateType: 'default' | 'minimal'\n} => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n initPageOptions.redirectUnauthenticatedUser = true\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewToRender: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewToRender = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewToRender]) {\n // --> /account\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewToRender],\n }\n templateClassName = baseClasses[viewToRender]\n templateType = 'minimal'\n\n if (viewToRender === 'account') {\n initPageOptions.redirectUnauthenticatedUser = true\n templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection) {\n // --> /collections/:collectionSlug\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: ListView,\n }\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = 'global-edit'\n templateType = 'default'\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n templateClassName = 'verify'\n templateType = 'minimal'\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionId\n // --> /collections/:collectionSlug/:id/api\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = `collection-default-edit`\n templateType = 'default'\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionId\n // --> /globals/:globalSlug/api\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = `global-edit`\n templateType = 'default'\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })\n }\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n templateClassName,\n templateType,\n }\n}\n"],"names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","ForgotPasswordView","forgotPasswordBaseClass","ListView","LoginView","loginBaseClass","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","isGlobal","isCollection","length","Component","redirectUnauthenticatedUser","viewToRender","admin","routes","matchedRoute","Object","entries","find","exact","path","DefaultView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Root/getViewFromConfig.ts"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, ImportMap, SanitizedConfig } from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { ForgotPasswordView, forgotPasswordBaseClass } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { LoginView, loginBaseClass } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewProps>\n payloadComponent?: AdminViewComponent\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}): {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n templateClassName: string\n templateType: 'default' | 'minimal'\n} => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n initPageOptions.redirectUnauthenticatedUser = true\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n initPageOptions.redirectUnauthenticatedUser = true\n templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection) {\n // --> /collections/:collectionSlug\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionId\n // --> /collections/:collectionSlug/:id/api\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionId\n // --> /globals/:globalSlug/api\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n templateClassName,\n templateType,\n }\n}\n"],"names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","ForgotPasswordView","forgotPasswordBaseClass","ListView","LoginView","loginBaseClass","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","isGlobal","isCollection","length","Component","redirectUnauthenticatedUser","viewKey","admin","routes","matchedRoute","Object","entries","find","exact","path","view","DefaultView"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Root/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Root/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA0B9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,sCAA6C,IAAI,sBAqHjF,CAAA"}
|
package/dist/views/Root/meta.js
CHANGED
|
@@ -10,6 +10,8 @@ import { generateNotFoundMeta } from '../NotFound/meta.js';
|
|
|
10
10
|
import { generateResetPasswordMetadata } from '../ResetPassword/index.js';
|
|
11
11
|
import { generateUnauthorizedMetadata } from '../Unauthorized/index.js';
|
|
12
12
|
import { generateVerifyMetadata } from '../Verify/index.js';
|
|
13
|
+
import { generateCustomViewMetadata } from './generateCustomViewMetadata.js';
|
|
14
|
+
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
|
|
13
15
|
const oneSegmentMeta = {
|
|
14
16
|
'create-first-user': generateCreateFirstUserMetadata,
|
|
15
17
|
forgot: generateForgotPasswordMetadata,
|
|
@@ -21,6 +23,7 @@ const oneSegmentMeta = {
|
|
|
21
23
|
export const generatePageMetadata = async ({ config: configPromise, params })=>{
|
|
22
24
|
const config = await configPromise;
|
|
23
25
|
const segments = Array.isArray(params.segments) ? params.segments : [];
|
|
26
|
+
const currentRoute = `/${segments.join('/')}`;
|
|
24
27
|
const [segmentOne, segmentTwo] = segments;
|
|
25
28
|
const isGlobal = segmentOne === 'globals';
|
|
26
29
|
const isCollection = segmentOne === 'collections';
|
|
@@ -129,10 +132,24 @@ export const generatePageMetadata = async ({ config: configPromise, params })=>{
|
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
if (!meta) {
|
|
132
|
-
|
|
135
|
+
const { viewConfig, viewKey } = getCustomViewByRoute({
|
|
133
136
|
config,
|
|
134
|
-
|
|
137
|
+
currentRoute
|
|
135
138
|
});
|
|
139
|
+
if (viewKey) {
|
|
140
|
+
// Custom Views
|
|
141
|
+
// --> /:path
|
|
142
|
+
meta = await generateCustomViewMetadata({
|
|
143
|
+
config,
|
|
144
|
+
i18n,
|
|
145
|
+
viewConfig
|
|
146
|
+
});
|
|
147
|
+
} else {
|
|
148
|
+
meta = await generateNotFoundMeta({
|
|
149
|
+
config,
|
|
150
|
+
i18n
|
|
151
|
+
});
|
|
152
|
+
}
|
|
136
153
|
}
|
|
137
154
|
return meta;
|
|
138
155
|
};
|