@payloadcms/next 3.0.0-beta.84 → 3.0.0-beta.86
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/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/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 +91 -47
- package/dist/views/Document/getViewsFromConfig.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 +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { InitOptions, Payload, SanitizedConfig } from 'payload';
|
|
2
|
-
export declare const reload: (config: SanitizedConfig, payload: Payload) => Promise<void>;
|
|
2
|
+
export declare const reload: (config: SanitizedConfig, payload: Payload, skipImportMapGeneration?: boolean) => Promise<void>;
|
|
3
3
|
export declare const getPayloadHMR: (options: InitOptions) => Promise<Payload>;
|
|
4
4
|
//# sourceMappingURL=getPayloadHMR.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,WACT,eAAe,WACd,OAAO,4BACU,OAAO,KAChC,OAAO,CAAC,IAAI,CA0Cd,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAyEzE,CAAA"}
|
|
@@ -9,7 +9,7 @@ if (!cached) {
|
|
|
9
9
|
ws: null
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
export const reload = async (config, payload)=>{
|
|
12
|
+
export const reload = async (config, payload, skipImportMapGeneration)=>{
|
|
13
13
|
if (typeof payload.db.destroy === 'function') {
|
|
14
14
|
await payload.db.destroy();
|
|
15
15
|
}
|
|
@@ -37,7 +37,7 @@ export const reload = async (config, payload)=>{
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
// Generate component map
|
|
40
|
-
if (config.admin?.importMap?.autoGenerate !== false) {
|
|
40
|
+
if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {
|
|
41
41
|
await generateImportMap(config, {
|
|
42
42
|
log: true
|
|
43
43
|
});
|
|
@@ -72,6 +72,7 @@ export const getPayloadHMR = async (options)=>{
|
|
|
72
72
|
}
|
|
73
73
|
return cached.payload;
|
|
74
74
|
}
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
75
76
|
if (!cached.promise) {
|
|
76
77
|
// no need to await options.config here, as it's already awaited in the BasePayload.init
|
|
77
78
|
cached.promise = new BasePayload().init(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (config: SanitizedConfig
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","generateImportMap","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","skipImportMapGeneration","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","admin","importMap","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
|
package/dist/utilities/meta.js
CHANGED
|
@@ -26,7 +26,10 @@ export const meta = async (args)=>{
|
|
|
26
26
|
if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {
|
|
27
27
|
icons = customIcons;
|
|
28
28
|
}
|
|
29
|
-
const metaTitle =
|
|
29
|
+
const metaTitle = [
|
|
30
|
+
title,
|
|
31
|
+
titleSuffix
|
|
32
|
+
].filter(Boolean).join(' ');
|
|
30
33
|
const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`;
|
|
31
34
|
const mergedOpenGraph = {
|
|
32
35
|
...defaultOpenGraph || {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle =
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle = [title, titleSuffix].filter(Boolean).join(' ')\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","metaTitle","filter","Boolean","join","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAA6B;QACjC;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQO;IAEZ,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQC;IACV;IAEA,MAAMe,YAAY;QAACpB;QAAOU;KAAY,CAACW,MAAM,CAACC,SAASC,IAAI,CAAC;IAE5D,MAAMC,UAAU,CAAC,EAAE,OAAOhB,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMe,kBAAyC;QAC7C,GAAI5B,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEuB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRb,KAAK,CAAC,OAAO,EAAEnB,GAAGiC,SAAS,CACzB;wBACE/B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOwB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAI5B,uBAAuB,WACvB;YACEuB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRb,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DoC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN/B,OAAOwB;QACP,GAAIhB,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOwB,QAAQC,OAAO,CAAC;QACrBnC;QACAM;QACAE;QACA4B,cAAc,IAAIC,IAChB1B,aACE2B,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElDhC,WAAWkB;QACXzB,OAAOoB;IACT;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/API/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/API/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAiC9B,CAAA"}
|
package/dist/views/API/meta.js
CHANGED
|
@@ -2,16 +2,20 @@ import { getTranslation } from '@payloadcms/translations';
|
|
|
2
2
|
import { meta } from '../../utilities/meta.js';
|
|
3
3
|
export const generateMetadata = async ({ collectionConfig, config, globalConfig, i18n })=>{
|
|
4
4
|
const entityLabel = collectionConfig ? getTranslation(collectionConfig.labels.singular, i18n) : globalConfig ? getTranslation(globalConfig.label, i18n) : '';
|
|
5
|
-
const metaTitle = `API - ${entityLabel}`;
|
|
6
|
-
const description = `API - ${entityLabel}`;
|
|
7
5
|
return Promise.resolve(meta({
|
|
8
6
|
...config.admin.meta || {},
|
|
9
|
-
description
|
|
7
|
+
description: `API - ${entityLabel}`,
|
|
10
8
|
keywords: 'API',
|
|
11
9
|
serverURL: config.serverURL,
|
|
12
|
-
title:
|
|
13
|
-
...collectionConfig
|
|
14
|
-
|
|
10
|
+
title: `API - ${entityLabel}`,
|
|
11
|
+
...collectionConfig ? {
|
|
12
|
+
...collectionConfig?.admin.meta || {},
|
|
13
|
+
...collectionConfig?.admin?.components?.views?.edit?.api?.meta || {}
|
|
14
|
+
} : {},
|
|
15
|
+
...globalConfig ? {
|
|
16
|
+
...globalConfig?.admin.meta || {},
|
|
17
|
+
...globalConfig?.admin?.components?.views?.edit?.api?.meta || {}
|
|
18
|
+
} : {}
|
|
15
19
|
}));
|
|
16
20
|
};
|
|
17
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/API/meta.ts"],"sourcesContent":["import { 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}) => {\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/views/API/meta.ts"],"sourcesContent":["import { 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}) => {\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n return Promise.resolve(\n meta({\n ...(config.admin.meta || {}),\n description: `API - ${entityLabel}`,\n keywords: 'API',\n serverURL: config.serverURL,\n title: `API - ${entityLabel}`,\n ...(collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.api?.meta || {}),\n }\n : {}),\n ...(globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.api?.meta || {}),\n }\n : {}),\n }),\n )\n}\n"],"names":["getTranslation","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","entityLabel","labels","singular","label","Promise","resolve","admin","description","keywords","serverURL","title","components","views","edit","api"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACL;IACC,MAAMC,cAAcJ,mBAChBH,eAAeG,iBAAiBK,MAAM,CAACC,QAAQ,EAAEH,QACjDD,eACEL,eAAeK,aAAaK,KAAK,EAAEJ,QACnC;IAEN,OAAOK,QAAQC,OAAO,CACpBX,KAAK;QACH,GAAIG,OAAOS,KAAK,CAACZ,IAAI,IAAI,CAAC,CAAC;QAC3Ba,aAAa,CAAC,MAAM,EAAEP,YAAY,CAAC;QACnCQ,UAAU;QACVC,WAAWZ,OAAOY,SAAS;QAC3BC,OAAO,CAAC,MAAM,EAAEV,YAAY,CAAC;QAC7B,GAAIJ,mBACA;YACE,GAAIA,kBAAkBU,MAAMZ,QAAQ,CAAC,CAAC;YACtC,GAAIE,kBAAkBU,OAAOK,YAAYC,OAAOC,MAAMC,KAAKpB,QAAQ,CAAC,CAAC;QACvE,IACA,CAAC,CAAC;QACN,GAAII,eACA;YACE,GAAIA,cAAcQ,MAAMZ,QAAQ,CAAC,CAAC;YAClC,GAAII,cAAcQ,OAAOK,YAAYC,OAAOC,MAAMC,KAAKpB,QAAQ,CAAC,CAAC;QACnE,IACA,CAAC,CAAC;IACR;AAEJ,EAAC"}
|
|
@@ -3,5 +3,8 @@ export declare const getCustomViewByRoute: ({ baseRoute, currentRoute, views, }:
|
|
|
3
3
|
baseRoute: string;
|
|
4
4
|
currentRoute: string;
|
|
5
5
|
views: SanitizedCollectionConfig["admin"]["components"]["views"] | SanitizedGlobalConfig["admin"]["components"]["views"];
|
|
6
|
-
}) =>
|
|
6
|
+
}) => {
|
|
7
|
+
Component: EditViewComponent;
|
|
8
|
+
viewKey?: string;
|
|
9
|
+
};
|
|
7
10
|
//# sourceMappingURL=getCustomViewByRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,wCAI9B;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG,
|
|
1
|
+
{"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,wCAI9B;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG;IACF,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CAoCjB,CAAA"}
|
|
@@ -1,22 +1,32 @@
|
|
|
1
1
|
import { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js';
|
|
2
2
|
export const getCustomViewByRoute = ({ baseRoute, currentRoute, views })=>{
|
|
3
|
-
if (typeof views?.edit === 'object'
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
if (typeof views?.edit === 'object') {
|
|
4
|
+
let viewKey;
|
|
5
|
+
const foundViewConfig = Object.entries(views.edit).find(([key, view])=>{
|
|
6
|
+
if (typeof view === 'object' && 'path' in view) {
|
|
6
7
|
const viewPath = `${baseRoute}${view.path}`;
|
|
7
|
-
|
|
8
|
+
const isMatching = isPathMatchingRoute({
|
|
8
9
|
currentRoute,
|
|
9
10
|
exact: true,
|
|
10
11
|
path: viewPath
|
|
11
12
|
});
|
|
13
|
+
if (isMatching) {
|
|
14
|
+
viewKey = key;
|
|
15
|
+
}
|
|
16
|
+
return isMatching;
|
|
12
17
|
}
|
|
13
18
|
return false;
|
|
14
19
|
})?.[1];
|
|
15
20
|
if (foundViewConfig && 'Component' in foundViewConfig) {
|
|
16
|
-
return
|
|
21
|
+
return {
|
|
22
|
+
Component: foundViewConfig.Component,
|
|
23
|
+
viewKey
|
|
24
|
+
};
|
|
17
25
|
}
|
|
18
26
|
}
|
|
19
|
-
return
|
|
27
|
+
return {
|
|
28
|
+
Component: null
|
|
29
|
+
};
|
|
20
30
|
};
|
|
21
31
|
|
|
22
32
|
//# sourceMappingURL=getCustomViewByRoute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"sourcesContent":["import type { EditViewComponent, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n baseRoute,\n currentRoute,\n views,\n}: {\n baseRoute: string\n currentRoute: string\n views:\n | SanitizedCollectionConfig['admin']['components']['views']\n | SanitizedGlobalConfig['admin']['components']['views']\n}): EditViewComponent => {\n if (typeof views?.edit === 'object'
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"sourcesContent":["import type { EditViewComponent, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n baseRoute,\n currentRoute,\n views,\n}: {\n baseRoute: string\n currentRoute: string\n views:\n | SanitizedCollectionConfig['admin']['components']['views']\n | SanitizedGlobalConfig['admin']['components']['views']\n}): {\n Component: EditViewComponent\n viewKey?: string\n} => {\n if (typeof views?.edit === 'object') {\n let viewKey: string\n\n const foundViewConfig = Object.entries(views.edit).find(([key, view]) => {\n if (typeof view === 'object' && 'path' in view) {\n const viewPath = `${baseRoute}${view.path}`\n\n const isMatching = isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: viewPath,\n })\n\n if (isMatching) {\n viewKey = key\n }\n\n return isMatching\n }\n\n return false\n })?.[1]\n\n if (foundViewConfig && 'Component' in foundViewConfig) {\n return {\n Component: foundViewConfig.Component,\n viewKey,\n }\n }\n }\n\n return {\n Component: null,\n }\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","baseRoute","currentRoute","views","edit","viewKey","foundViewConfig","Object","entries","find","key","view","viewPath","path","isMatching","exact","Component"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,iCAAgC;AAEpE,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,SAAS,EACTC,YAAY,EACZC,KAAK,EAON;IAIC,IAAI,OAAOA,OAAOC,SAAS,UAAU;QACnC,IAAIC;QAEJ,MAAMC,kBAAkBC,OAAOC,OAAO,CAACL,MAAMC,IAAI,EAAEK,IAAI,CAAC,CAAC,CAACC,KAAKC,KAAK;YAClE,IAAI,OAAOA,SAAS,YAAY,UAAUA,MAAM;gBAC9C,MAAMC,WAAW,CAAC,EAAEX,UAAU,EAAEU,KAAKE,IAAI,CAAC,CAAC;gBAE3C,MAAMC,aAAaf,oBAAoB;oBACrCG;oBACAa,OAAO;oBACPF,MAAMD;gBACR;gBAEA,IAAIE,YAAY;oBACdT,UAAUK;gBACZ;gBAEA,OAAOI;YACT;YAEA,OAAO;QACT,IAAI,CAAC,EAAE;QAEP,IAAIR,mBAAmB,eAAeA,iBAAiB;YACrD,OAAO;gBACLU,WAAWV,gBAAgBU,SAAS;gBACpCX;YACF;QACF;IACF;IAEA,OAAO;QACLW,WAAW;IACb;AACF,EAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Metadata } from 'next';
|
|
2
|
-
import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
|
|
2
|
+
import type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
|
|
3
3
|
import type { GenerateViewMetadata } from '../Root/index.js';
|
|
4
4
|
export type GenerateEditViewMetadata = (args: {
|
|
5
5
|
collectionConfig?: SanitizedCollectionConfig | null;
|
|
6
6
|
globalConfig?: SanitizedGlobalConfig | null;
|
|
7
|
+
view?: keyof EditConfig;
|
|
7
8
|
} & Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
|
|
8
9
|
export declare const getMetaBySegment: GenerateEditViewMetadata;
|
|
9
10
|
//# sourceMappingURL=getMetaBySegment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAW5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACnD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,UAAU,CAAA;CACxB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBAgI9B,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js';
|
|
|
5
5
|
import { generateNotFoundMeta } from '../NotFound/meta.js';
|
|
6
6
|
import { generateMetadata as versionMeta } from '../Version/meta.js';
|
|
7
7
|
import { generateMetadata as versionsMeta } from '../Versions/meta.js';
|
|
8
|
+
import { getViewsFromConfig } from './getViewsFromConfig.js';
|
|
8
9
|
export const getMetaBySegment = async ({ collectionConfig, config, globalConfig, params })=>{
|
|
9
10
|
const { segments } = params;
|
|
10
11
|
let fn = null;
|
|
@@ -13,45 +14,66 @@ export const getMetaBySegment = async ({ collectionConfig, config, globalConfig,
|
|
|
13
14
|
const isGlobal = segmentOne === 'globals';
|
|
14
15
|
const isEditing = isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create');
|
|
15
16
|
if (isCollection) {
|
|
16
|
-
// `/:id`
|
|
17
|
+
// `/:collection/:id`
|
|
17
18
|
if (params.segments.length === 3) {
|
|
18
19
|
fn = editMeta;
|
|
19
20
|
}
|
|
20
|
-
// `/:id
|
|
21
|
-
if (params.segments.length === 4
|
|
22
|
-
|
|
21
|
+
// `/:collection/:id/:view`
|
|
22
|
+
if (params.segments.length === 4) {
|
|
23
|
+
switch(params.segments[3]){
|
|
24
|
+
case 'api':
|
|
25
|
+
// `/:collection/:id/api`
|
|
26
|
+
fn = apiMeta;
|
|
27
|
+
break;
|
|
28
|
+
case 'preview':
|
|
29
|
+
// `/:collection/:id/preview`
|
|
30
|
+
fn = livePreviewMeta;
|
|
31
|
+
break;
|
|
32
|
+
case 'versions':
|
|
33
|
+
// `/:collection/:id/versions`
|
|
34
|
+
fn = versionsMeta;
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
23
39
|
}
|
|
24
|
-
// `/:id
|
|
25
|
-
if (params.segments.length ===
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
fn = versionMeta;
|
|
40
|
+
// `/:collection/:id/:slug-1/:slug-2`
|
|
41
|
+
if (params.segments.length === 5) {
|
|
42
|
+
switch(params.segments[3]){
|
|
43
|
+
case 'versions':
|
|
44
|
+
// `/:collection/:id/versions/:version`
|
|
45
|
+
fn = versionMeta;
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
35
50
|
}
|
|
36
51
|
}
|
|
37
52
|
if (isGlobal) {
|
|
38
|
-
// `/:
|
|
53
|
+
// `/:global`
|
|
39
54
|
if (params.segments?.length === 2) {
|
|
40
55
|
fn = editMeta;
|
|
41
56
|
}
|
|
42
|
-
// `/:
|
|
43
|
-
if (params.segments?.length === 3
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
// `/:global/:view`
|
|
58
|
+
if (params.segments?.length === 3) {
|
|
59
|
+
switch(params.segments[2]){
|
|
60
|
+
case 'api':
|
|
61
|
+
// `/:global/api`
|
|
62
|
+
fn = apiMeta;
|
|
63
|
+
break;
|
|
64
|
+
case 'preview':
|
|
65
|
+
// `/:global/preview`
|
|
66
|
+
fn = livePreviewMeta;
|
|
67
|
+
break;
|
|
68
|
+
case 'versions':
|
|
69
|
+
// `/:global/versions`
|
|
70
|
+
fn = versionsMeta;
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
53
75
|
}
|
|
54
|
-
// `/:
|
|
76
|
+
// `/:global/versions/:version`
|
|
55
77
|
if (params.segments?.length === 4 && params.segments[2] === 'versions') {
|
|
56
78
|
fn = versionMeta;
|
|
57
79
|
}
|
|
@@ -67,6 +89,29 @@ export const getMetaBySegment = async ({ collectionConfig, config, globalConfig,
|
|
|
67
89
|
i18n,
|
|
68
90
|
isEditing
|
|
69
91
|
});
|
|
92
|
+
} else {
|
|
93
|
+
const { viewKey } = getViewsFromConfig({
|
|
94
|
+
collectionConfig,
|
|
95
|
+
config,
|
|
96
|
+
globalConfig,
|
|
97
|
+
overrideDocPermissions: true,
|
|
98
|
+
routeSegments: typeof segments === 'string' ? [
|
|
99
|
+
segments
|
|
100
|
+
] : segments
|
|
101
|
+
});
|
|
102
|
+
if (viewKey) {
|
|
103
|
+
const customViewConfig = collectionConfig?.admin?.components?.views?.edit?.[viewKey] || globalConfig?.admin?.components?.views?.edit?.[viewKey];
|
|
104
|
+
if (customViewConfig) {
|
|
105
|
+
return editMeta({
|
|
106
|
+
collectionConfig,
|
|
107
|
+
config,
|
|
108
|
+
globalConfig,
|
|
109
|
+
i18n,
|
|
110
|
+
isEditing,
|
|
111
|
+
view: viewKey
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
70
115
|
}
|
|
71
116
|
return generateNotFoundMeta({
|
|
72
117
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateMetadata as apiMeta } from '../API/meta.js'\nimport { generateMetadata as editMeta } from '../Edit/meta.js'\nimport { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateMetadata as versionMeta } from '../Version/meta.js'\nimport { generateMetadata as versionsMeta } from '../Versions/meta.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: SanitizedCollectionConfig | null\n globalConfig?: SanitizedGlobalConfig | null\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:id`\n if (params.segments.length === 3) {\n fn = editMeta\n }\n\n // `/:id
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateMetadata as apiMeta } from '../API/meta.js'\nimport { generateMetadata as editMeta } from '../Edit/meta.js'\nimport { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateMetadata as versionMeta } from '../Version/meta.js'\nimport { generateMetadata as versionsMeta } from '../Versions/meta.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: SanitizedCollectionConfig | null\n globalConfig?: SanitizedGlobalConfig | null\n view?: keyof EditConfig\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:collection/:id`\n if (params.segments.length === 3) {\n fn = editMeta\n }\n\n // `/:collection/:id/:view`\n if (params.segments.length === 4) {\n switch (params.segments[3]) {\n case 'api':\n // `/:collection/:id/api`\n fn = apiMeta\n break\n case 'preview':\n // `/:collection/:id/preview`\n fn = livePreviewMeta\n break\n case 'versions':\n // `/:collection/:id/versions`\n fn = versionsMeta\n break\n default:\n break\n }\n }\n\n // `/:collection/:id/:slug-1/:slug-2`\n if (params.segments.length === 5) {\n switch (params.segments[3]) {\n case 'versions':\n // `/:collection/:id/versions/:version`\n fn = versionMeta\n break\n default:\n break\n }\n }\n }\n\n if (isGlobal) {\n // `/:global`\n if (params.segments?.length === 2) {\n fn = editMeta\n }\n\n // `/:global/:view`\n if (params.segments?.length === 3) {\n switch (params.segments[2]) {\n case 'api':\n // `/:global/api`\n fn = apiMeta\n break\n case 'preview':\n // `/:global/preview`\n fn = livePreviewMeta\n break\n case 'versions':\n // `/:global/versions`\n fn = versionsMeta\n break\n default:\n break\n }\n }\n\n // `/:global/versions/:version`\n if (params.segments?.length === 4 && params.segments[2] === 'versions') {\n fn = versionMeta\n }\n }\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n if (typeof fn === 'function') {\n return fn({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n } else {\n const { viewKey } = getViewsFromConfig({\n collectionConfig,\n config,\n globalConfig,\n overrideDocPermissions: true,\n routeSegments: typeof segments === 'string' ? [segments] : segments,\n })\n\n if (viewKey) {\n const customViewConfig =\n collectionConfig?.admin?.components?.views?.edit?.[viewKey] ||\n globalConfig?.admin?.components?.views?.edit?.[viewKey]\n\n if (customViewConfig) {\n return editMeta({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view: viewKey as keyof EditConfig,\n })\n }\n }\n }\n\n return generateNotFoundMeta({ config, i18n })\n}\n"],"names":["getNextRequestI18n","generateMetadata","apiMeta","editMeta","livePreviewMeta","generateNotFoundMeta","versionMeta","versionsMeta","getViewsFromConfig","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","i18n","viewKey","overrideDocPermissions","routeSegments","customViewConfig","admin","components","views","edit","view"],"mappings":"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"}
|
|
@@ -4,18 +4,24 @@ export type ViewFromConfig<TProps extends object> = {
|
|
|
4
4
|
Component?: React.FC<TProps>;
|
|
5
5
|
payloadComponent?: PayloadComponent<TProps>;
|
|
6
6
|
};
|
|
7
|
-
export declare const getViewsFromConfig: ({ collectionConfig, config, docPermissions, globalConfig, routeSegments, }: {
|
|
7
|
+
export declare const getViewsFromConfig: ({ collectionConfig, config, docPermissions, globalConfig, overrideDocPermissions, routeSegments, }: {
|
|
8
8
|
collectionConfig?: SanitizedCollectionConfig;
|
|
9
9
|
config: SanitizedConfig;
|
|
10
|
-
docPermissions: CollectionPermission | GlobalPermission;
|
|
11
10
|
globalConfig?: SanitizedGlobalConfig;
|
|
12
11
|
routeSegments: string[];
|
|
13
|
-
}
|
|
12
|
+
} & ({
|
|
13
|
+
docPermissions: CollectionPermission | GlobalPermission;
|
|
14
|
+
overrideDocPermissions?: false | undefined;
|
|
15
|
+
} | {
|
|
16
|
+
docPermissions?: never;
|
|
17
|
+
overrideDocPermissions: true;
|
|
18
|
+
})) => {
|
|
14
19
|
CustomView: ViewFromConfig<ServerSideEditViewProps>;
|
|
15
20
|
DefaultView: ViewFromConfig<ServerSideEditViewProps>;
|
|
16
21
|
/**
|
|
17
22
|
* The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null
|
|
18
23
|
*/
|
|
19
24
|
ErrorView: ViewFromConfig<AdminViewProps>;
|
|
25
|
+
viewKey: string;
|
|
20
26
|
} | null;
|
|
21
27
|
//# sourceMappingURL=getViewsFromConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAsXH,CAAA"}
|