@payloadcms/next 3.0.0-canary.aceaf5d → 3.0.0-canary.af2bebe
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/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/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 +6 -6
|
@@ -7,17 +7,18 @@ import { VersionView as DefaultVersionView } from '../Version/index.js';
|
|
|
7
7
|
import { VersionsView as DefaultVersionsView } from '../Versions/index.js';
|
|
8
8
|
import { getCustomViewByKey } from './getCustomViewByKey.js';
|
|
9
9
|
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
|
|
10
|
-
export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, globalConfig, routeSegments })=>{
|
|
10
|
+
export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, globalConfig, overrideDocPermissions, routeSegments })=>{
|
|
11
11
|
// Conditionally import and lazy load the default view
|
|
12
12
|
let DefaultView = null;
|
|
13
13
|
let CustomView = null;
|
|
14
14
|
let ErrorView = null;
|
|
15
|
+
let viewKey;
|
|
15
16
|
const { routes: { admin: adminRoute } } = config;
|
|
16
17
|
const views = collectionConfig && collectionConfig?.admin?.components?.views || globalConfig && globalConfig?.admin?.components?.views;
|
|
17
18
|
const livePreviewEnabled = collectionConfig && collectionConfig?.admin?.livePreview || config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) || globalConfig && globalConfig?.admin?.livePreview || config?.admin?.livePreview?.globals?.includes(globalConfig?.slug);
|
|
18
19
|
if (collectionConfig) {
|
|
19
20
|
const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] = routeSegments;
|
|
20
|
-
if (!docPermissions?.read?.permission) {
|
|
21
|
+
if (!overrideDocPermissions && !docPermissions?.read?.permission) {
|
|
21
22
|
notFound();
|
|
22
23
|
} else {
|
|
23
24
|
// `../:id`, or `../create`
|
|
@@ -27,7 +28,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
27
28
|
switch(segment3){
|
|
28
29
|
case 'create':
|
|
29
30
|
{
|
|
30
|
-
if ('create' in docPermissions && docPermissions?.create?.permission) {
|
|
31
|
+
if (!overrideDocPermissions && 'create' in docPermissions && docPermissions?.create?.permission) {
|
|
31
32
|
CustomView = {
|
|
32
33
|
payloadComponent: getCustomViewByKey(views, 'default')
|
|
33
34
|
};
|
|
@@ -43,12 +44,36 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
43
44
|
}
|
|
44
45
|
default:
|
|
45
46
|
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
const baseRoute = [
|
|
48
|
+
adminRoute !== '/' && adminRoute,
|
|
49
|
+
'collections',
|
|
50
|
+
collectionSlug,
|
|
51
|
+
segment3
|
|
52
|
+
].filter(Boolean).join('/');
|
|
53
|
+
const currentRoute = [
|
|
54
|
+
baseRoute,
|
|
55
|
+
segment4,
|
|
56
|
+
segment5,
|
|
57
|
+
...remainingSegments
|
|
58
|
+
].filter(Boolean).join('/');
|
|
59
|
+
const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({
|
|
60
|
+
baseRoute,
|
|
61
|
+
currentRoute,
|
|
62
|
+
views
|
|
63
|
+
});
|
|
64
|
+
if (customViewKey) {
|
|
65
|
+
viewKey = customViewKey;
|
|
66
|
+
CustomView = {
|
|
67
|
+
payloadComponent: CustomViewComponent
|
|
68
|
+
};
|
|
69
|
+
} else {
|
|
70
|
+
CustomView = {
|
|
71
|
+
payloadComponent: getCustomViewByKey(views, 'default')
|
|
72
|
+
};
|
|
73
|
+
DefaultView = {
|
|
74
|
+
Component: DefaultEditView
|
|
75
|
+
};
|
|
76
|
+
}
|
|
52
77
|
break;
|
|
53
78
|
}
|
|
54
79
|
}
|
|
@@ -81,7 +106,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
81
106
|
}
|
|
82
107
|
case 'versions':
|
|
83
108
|
{
|
|
84
|
-
if (docPermissions?.readVersions?.permission) {
|
|
109
|
+
if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {
|
|
85
110
|
CustomView = {
|
|
86
111
|
payloadComponent: getCustomViewByKey(views, 'versions')
|
|
87
112
|
};
|
|
@@ -109,13 +134,17 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
109
134
|
segment5,
|
|
110
135
|
...remainingSegments
|
|
111
136
|
].filter(Boolean).join('/');
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
137
|
+
const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({
|
|
138
|
+
baseRoute,
|
|
139
|
+
currentRoute,
|
|
140
|
+
views
|
|
141
|
+
});
|
|
142
|
+
if (customViewKey) {
|
|
143
|
+
viewKey = customViewKey;
|
|
144
|
+
CustomView = {
|
|
145
|
+
payloadComponent: CustomViewComponent
|
|
146
|
+
};
|
|
147
|
+
}
|
|
119
148
|
break;
|
|
120
149
|
}
|
|
121
150
|
}
|
|
@@ -125,7 +154,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
125
154
|
default:
|
|
126
155
|
{
|
|
127
156
|
if (segment4 === 'versions') {
|
|
128
|
-
if (docPermissions?.readVersions?.permission) {
|
|
157
|
+
if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {
|
|
129
158
|
CustomView = {
|
|
130
159
|
payloadComponent: getCustomViewByKey(views, 'version')
|
|
131
160
|
};
|
|
@@ -150,13 +179,17 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
150
179
|
segment5,
|
|
151
180
|
...remainingSegments
|
|
152
181
|
].filter(Boolean).join('/');
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
182
|
+
const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({
|
|
183
|
+
baseRoute,
|
|
184
|
+
currentRoute,
|
|
185
|
+
views
|
|
186
|
+
});
|
|
187
|
+
if (customViewKey) {
|
|
188
|
+
viewKey = customViewKey;
|
|
189
|
+
CustomView = {
|
|
190
|
+
payloadComponent: CustomViewComponent
|
|
191
|
+
};
|
|
192
|
+
}
|
|
160
193
|
}
|
|
161
194
|
break;
|
|
162
195
|
}
|
|
@@ -165,7 +198,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
165
198
|
}
|
|
166
199
|
if (globalConfig) {
|
|
167
200
|
const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments;
|
|
168
|
-
if (!docPermissions?.read?.permission) {
|
|
201
|
+
if (!overrideDocPermissions && !docPermissions?.read?.permission) {
|
|
169
202
|
notFound();
|
|
170
203
|
} else {
|
|
171
204
|
switch(routeSegments.length){
|
|
@@ -206,7 +239,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
206
239
|
}
|
|
207
240
|
case 'versions':
|
|
208
241
|
{
|
|
209
|
-
if (docPermissions?.readVersions?.permission) {
|
|
242
|
+
if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {
|
|
210
243
|
CustomView = {
|
|
211
244
|
payloadComponent: getCustomViewByKey(views, 'versions')
|
|
212
245
|
};
|
|
@@ -222,7 +255,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
222
255
|
}
|
|
223
256
|
default:
|
|
224
257
|
{
|
|
225
|
-
if (docPermissions?.read?.permission) {
|
|
258
|
+
if (!overrideDocPermissions && docPermissions?.read?.permission) {
|
|
226
259
|
const baseRoute = [
|
|
227
260
|
adminRoute,
|
|
228
261
|
globalEntity,
|
|
@@ -234,16 +267,21 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
234
267
|
segment3,
|
|
235
268
|
...remainingSegments
|
|
236
269
|
].filter(Boolean).join('/');
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
270
|
+
const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({
|
|
271
|
+
baseRoute,
|
|
272
|
+
currentRoute,
|
|
273
|
+
views
|
|
274
|
+
});
|
|
275
|
+
if (customViewKey) {
|
|
276
|
+
viewKey = customViewKey;
|
|
277
|
+
CustomView = {
|
|
278
|
+
payloadComponent: CustomViewComponent
|
|
279
|
+
};
|
|
280
|
+
} else {
|
|
281
|
+
DefaultView = {
|
|
282
|
+
Component: DefaultEditView
|
|
283
|
+
};
|
|
284
|
+
}
|
|
247
285
|
} else {
|
|
248
286
|
ErrorView = {
|
|
249
287
|
Component: UnauthorizedView
|
|
@@ -258,7 +296,7 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
258
296
|
{
|
|
259
297
|
// `../:slug/versions/:version`, etc
|
|
260
298
|
if (segment3 === 'versions') {
|
|
261
|
-
if (docPermissions?.readVersions?.permission) {
|
|
299
|
+
if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {
|
|
262
300
|
CustomView = {
|
|
263
301
|
payloadComponent: getCustomViewByKey(views, 'version')
|
|
264
302
|
};
|
|
@@ -281,13 +319,17 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
281
319
|
segment3,
|
|
282
320
|
...remainingSegments
|
|
283
321
|
].filter(Boolean).join('/');
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
322
|
+
const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({
|
|
323
|
+
baseRoute,
|
|
324
|
+
currentRoute,
|
|
325
|
+
views
|
|
326
|
+
});
|
|
327
|
+
if (customViewKey) {
|
|
328
|
+
viewKey = customViewKey;
|
|
329
|
+
CustomView = {
|
|
330
|
+
payloadComponent: CustomViewComponent
|
|
331
|
+
};
|
|
332
|
+
}
|
|
291
333
|
}
|
|
292
334
|
break;
|
|
293
335
|
}
|
|
@@ -297,7 +339,8 @@ export const getViewsFromConfig = ({ collectionConfig, config, docPermissions, g
|
|
|
297
339
|
return {
|
|
298
340
|
CustomView,
|
|
299
341
|
DefaultView,
|
|
300
|
-
ErrorView
|
|
342
|
+
ErrorView,
|
|
343
|
+
viewKey
|
|
301
344
|
};
|
|
302
345
|
};
|
|
303
346
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n payloadComponent?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: CollectionPermission | GlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!docPermissions?.read?.permission) {\n notFound()\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if ('create' in docPermissions && docPermissions?.create?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n CustomView = {\n payloadComponent: getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n }),\n }\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n CustomView = {\n payloadComponent: getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n }),\n }\n }\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!docPermissions?.read?.permission) {\n notFound()\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n CustomView = {\n payloadComponent: getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n }),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n CustomView = {\n payloadComponent: getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n }),\n }\n }\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n }\n}\n"],"names":["notFound","APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","routeSegments","DefaultView","CustomView","ErrorView","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","length","create","payloadComponent","Component","hideAPIURL","readVersions","baseRoute","filter","Boolean","join","currentRoute","globalEntity","globalSlug"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n payloadComponent?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: CollectionPermission | GlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (\n !overrideDocPermissions &&\n 'create' in docPermissions &&\n docPermissions?.create?.permission\n ) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"names":["notFound","APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","length","create","payloadComponent","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CA+HvF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest, TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\n useConfig,\n useDocumentInfo,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ readonly enabled: boolean; readonly readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n const { collectionSlug, docPermissions } = useDocumentInfo()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const apiKeyField: TextFieldClient = config.collections\n .find((collection) => {\n return collection.slug === collectionSlug\n })\n ?.fields?.find((field) => 'name' in field && field.name === 'apiKey') as TextFieldClient\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as unknown as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const apiKeyLabel = useMemo(() => {\n let label: Record<string, string> | string = 'API Key'\n\n if (apiKeyField?.label) {\n label = apiKeyField.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyLabel, apiKeyValue],\n )\n\n const canUpdateAPIKey = useMemo(() => {\n if (docPermissions && docPermissions?.fields?.apiKey) {\n return docPermissions.fields.apiKey.update.permission\n }\n }, [docPermissions])\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel\n Label={{\n type: 'client',\n Component: null,\n RenderedComponent: APIKeyLabel,\n }}\n htmlFor={path}\n />\n <input\n aria-label={apiKeyLabel}\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && canUpdateAPIKey && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["getTranslation","CopyToClipboard","FieldLabel","GenerateConfirmation","useConfig","useDocumentInfo","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","collectionSlug","docPermissions","apiKey","fields","apiKeyField","collections","find","collection","slug","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","APIKeyLabel","div","className","span","canUpdateAPIKey","update","permission","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","Label","Component","RenderedComponent","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest, TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\n useConfig,\n useDocumentInfo,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ readonly enabled: boolean; readonly readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n const { collectionSlug, docPermissions } = useDocumentInfo()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const apiKeyField: TextFieldClient = config.collections\n .find((collection) => {\n return collection.slug === collectionSlug\n })\n ?.fields?.find((field) => 'name' in field && field.name === 'apiKey') as TextFieldClient\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as unknown as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const apiKeyLabel = useMemo(() => {\n let label: Record<string, string> | string = 'API Key'\n\n if (apiKeyField?.label) {\n label = apiKeyField.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyLabel, apiKeyValue],\n )\n\n const canUpdateAPIKey = useMemo(() => {\n if (docPermissions && docPermissions?.fields?.apiKey) {\n return docPermissions.fields.apiKey.update.permission\n }\n }, [docPermissions])\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel\n Label={{\n type: 'client',\n Component: null,\n RenderedComponent: APIKeyLabel,\n }}\n field={null}\n htmlFor={path}\n />\n <input\n aria-label={apiKeyLabel}\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && canUpdateAPIKey && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["getTranslation","CopyToClipboard","FieldLabel","GenerateConfirmation","useConfig","useDocumentInfo","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","collectionSlug","docPermissions","apiKey","fields","apiKeyField","collections","find","collection","slug","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","APIKeyLabel","div","className","span","canUpdateAPIKey","update","permission","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","Label","Component","RenderedComponent","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/meta.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAyD9B,CAAA"}
|
package/dist/views/Edit/meta.js
CHANGED
|
@@ -1,27 +1,38 @@
|
|
|
1
1
|
import { getTranslation } from '@payloadcms/translations';
|
|
2
2
|
import { meta } from '../../utilities/meta.js';
|
|
3
|
-
export const generateMetadata = async ({ collectionConfig, config, globalConfig, i18n, isEditing })=>{
|
|
3
|
+
export const generateMetadata = async ({ collectionConfig, config, globalConfig, i18n, isEditing, view = 'default' })=>{
|
|
4
4
|
const { t } = i18n;
|
|
5
5
|
const entityLabel = collectionConfig ? getTranslation(collectionConfig.labels.singular, i18n) : globalConfig ? getTranslation(globalConfig.label, i18n) : '';
|
|
6
|
-
const
|
|
7
|
-
const ogTitle = `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`;
|
|
8
|
-
const description = `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`;
|
|
9
|
-
const keywords = `${entityLabel}, Payload, CMS`;
|
|
10
|
-
const baseOGOverrides = config.admin.meta.openGraph || {};
|
|
11
|
-
const entityOGOverrides = collectionConfig ? collectionConfig.admin?.meta?.openGraph : globalConfig ? globalConfig.admin?.meta?.openGraph : {};
|
|
12
|
-
return meta({
|
|
6
|
+
const metaToUse = {
|
|
13
7
|
...config.admin.meta || {},
|
|
14
|
-
description
|
|
15
|
-
keywords,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
...collectionConfig
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
description: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,
|
|
9
|
+
keywords: `${entityLabel}, Payload, CMS`,
|
|
10
|
+
title: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`
|
|
11
|
+
};
|
|
12
|
+
const ogToUse = {
|
|
13
|
+
title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,
|
|
14
|
+
...config.admin.meta.openGraph || {},
|
|
15
|
+
...collectionConfig ? {
|
|
16
|
+
...collectionConfig?.admin.meta?.openGraph || {},
|
|
17
|
+
...collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}
|
|
18
|
+
} : {},
|
|
19
|
+
...globalConfig ? {
|
|
20
|
+
...globalConfig?.admin.meta?.openGraph || {},
|
|
21
|
+
...globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}
|
|
22
|
+
} : {}
|
|
23
|
+
};
|
|
24
|
+
return meta({
|
|
25
|
+
...metaToUse,
|
|
26
|
+
openGraph: ogToUse,
|
|
27
|
+
...collectionConfig ? {
|
|
28
|
+
...collectionConfig?.admin.meta || {},
|
|
29
|
+
...collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {}
|
|
30
|
+
} : {},
|
|
31
|
+
...globalConfig ? {
|
|
32
|
+
...globalConfig?.admin.meta || {},
|
|
33
|
+
...globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {}
|
|
34
|
+
} : {},
|
|
35
|
+
serverURL: config.serverURL
|
|
25
36
|
});
|
|
26
37
|
};
|
|
27
38
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Edit/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n}): Promise<Metadata> => {\n const { t } = i18n\n\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Edit/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view = 'default',\n}): Promise<Metadata> => {\n const { t } = i18n\n\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n description: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,\n keywords: `${entityLabel}, Payload, CMS`,\n title: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,\n }\n\n const ogToUse: MetaConfig['openGraph'] = {\n title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,\n ...(config.admin.meta.openGraph || {}),\n ...(collectionConfig\n ? {\n ...(collectionConfig?.admin.meta?.openGraph || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}),\n ...(globalConfig\n ? {\n ...(globalConfig?.admin.meta?.openGraph || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}),\n }\n\n return meta({\n ...metaToUse,\n openGraph: ogToUse,\n ...(collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}),\n ...(globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}),\n serverURL: config.serverURL,\n })\n}\n"],"names":["getTranslation","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","isEditing","view","t","entityLabel","labels","singular","label","metaToUse","admin","description","keywords","title","ogToUse","openGraph","components","views","edit","serverURL"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,OAAO,SAAS,EACjB;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGH;IAEd,MAAMI,cAAcP,mBAChBH,eAAeG,iBAAiBQ,MAAM,CAACC,QAAQ,EAAEN,QACjDD,eACEL,eAAeK,aAAaQ,KAAK,EAAEP,QACnC;IAEN,MAAMQ,YAAwB;QAC5B,GAAIV,OAAOW,KAAK,CAACd,IAAI,IAAI,CAAC,CAAC;QAC3Be,aAAa,CAAC,EAAET,YAAYE,EAAE,qBAAqBA,EAAE,oBAAoB,GAAG,EAAEC,YAAY,CAAC;QAC3FO,UAAU,CAAC,EAAEP,YAAY,cAAc,CAAC;QACxCQ,OAAO,CAAC,EAAEX,YAAYE,EAAE,qBAAqBA,EAAE,oBAAoB,GAAG,EAAEC,YAAY,CAAC;IACvF;IAEA,MAAMS,UAAmC;QACvCD,OAAO,CAAC,EAAEX,YAAYE,EAAE,kBAAkBA,EAAE,gBAAgB,GAAG,EAAEC,YAAY,CAAC;QAC9E,GAAIN,OAAOW,KAAK,CAACd,IAAI,CAACmB,SAAS,IAAI,CAAC,CAAC;QACrC,GAAIjB,mBACA;YACE,GAAIA,kBAAkBY,MAAMd,MAAMmB,aAAa,CAAC,CAAC;YACjD,GAAIjB,kBAAkBY,OAAOM,YAAYC,OAAOC,MAAM,CAACf,KAAK,EAAEP,MAAMmB,aAAa,CAAC,CAAC;QACrF,IACA,CAAC,CAAC;QACN,GAAIf,eACA;YACE,GAAIA,cAAcU,MAAMd,MAAMmB,aAAa,CAAC,CAAC;YAC7C,GAAIf,cAAcU,OAAOM,YAAYC,OAAOC,MAAM,CAACf,KAAK,EAAEP,MAAMmB,aAAa,CAAC,CAAC;QACjF,IACA,CAAC,CAAC;IACR;IAEA,OAAOnB,KAAK;QACV,GAAGa,SAAS;QACZM,WAAWD;QACX,GAAIhB,mBACA;YACE,GAAIA,kBAAkBY,MAAMd,QAAQ,CAAC,CAAC;YACtC,GAAIE,kBAAkBY,OAAOM,YAAYC,OAAOC,MAAM,CAACf,KAAK,EAAEP,QAAQ,CAAC,CAAC;QAC1E,IACA,CAAC,CAAC;QACN,GAAII,eACA;YACE,GAAIA,cAAcU,MAAMd,QAAQ,CAAC,CAAC;YAClC,GAAII,cAAcU,OAAOM,YAAYC,OAAOC,MAAM,CAACf,KAAK,EAAEP,QAAQ,CAAC,CAAC;QACtE,IACA,CAAC,CAAC;QACNuB,WAAWpB,OAAOoB,SAAS;IAC7B;AACF,EAAC"}
|
|
@@ -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
|
|