@payloadcms/next 3.0.0-beta.83 → 3.0.0-beta.85

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.
Files changed (45) hide show
  1. package/dist/prod/styles.css +1 -1
  2. package/dist/utilities/meta.js +4 -1
  3. package/dist/utilities/meta.js.map +1 -1
  4. package/dist/views/API/meta.d.ts.map +1 -1
  5. package/dist/views/API/meta.js +10 -6
  6. package/dist/views/API/meta.js.map +1 -1
  7. package/dist/views/Document/getCustomViewByRoute.d.ts +4 -1
  8. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  9. package/dist/views/Document/getCustomViewByRoute.js +16 -6
  10. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  11. package/dist/views/Document/getMetaBySegment.d.ts +2 -1
  12. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  13. package/dist/views/Document/getMetaBySegment.js +73 -28
  14. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  15. package/dist/views/Document/getViewsFromConfig.d.ts +9 -3
  16. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  17. package/dist/views/Document/getViewsFromConfig.js +91 -47
  18. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  19. package/dist/views/Edit/meta.d.ts.map +1 -1
  20. package/dist/views/Edit/meta.js +30 -19
  21. package/dist/views/Edit/meta.js.map +1 -1
  22. package/dist/views/LivePreview/meta.d.ts.map +1 -1
  23. package/dist/views/LivePreview/meta.js +2 -1
  24. package/dist/views/LivePreview/meta.js.map +1 -1
  25. package/dist/views/Root/generateCustomViewMetadata.d.ts +11 -0
  26. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -0
  27. package/dist/views/Root/generateCustomViewMetadata.js +23 -0
  28. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  29. package/dist/views/Root/getCustomViewByRoute.d.ts +6 -2
  30. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  31. package/dist/views/Root/getCustomViewByRoute.js +20 -5
  32. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  33. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  34. package/dist/views/Root/getViewFromConfig.js +7 -7
  35. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  36. package/dist/views/Root/meta.d.ts.map +1 -1
  37. package/dist/views/Root/meta.js +19 -2
  38. package/dist/views/Root/meta.js.map +1 -1
  39. package/dist/views/Version/meta.d.ts.map +1 -1
  40. package/dist/views/Version/meta.js +24 -19
  41. package/dist/views/Version/meta.js.map +1 -1
  42. package/dist/views/Versions/meta.d.ts.map +1 -1
  43. package/dist/views/Versions/meta.js +24 -19
  44. package/dist/views/Versions/meta.js.map +1 -1
  45. package/package.json +6 -6
@@ -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 = `${title} ${titleSuffix}`;
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 = `${title} ${titleSuffix}`\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","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,CAAC,EAAEpB,MAAM,CAAC,EAAEU,YAAY,CAAC;IAE3C,MAAMW,UAAU,CAAC,EAAE,OAAOb,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMY,kBAAyC;QAC7C,GAAIzB,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,CAAC,OAAO,EAAEnB,GAAG8B,SAAS,CACzB;wBACE5B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOqB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAIzB,uBAAuB,WACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DiC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN5B,OAAOqB;QACP,GAAIb,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOqB,QAAQC,OAAO,CAAC;QACrBhC;QACAM;QACAE;QACAyB,cAAc,IAAIC,IAChBvB,aACEwB,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElD7B,WAAWe;QACXtB,OAAOoB;IACT;AACF,EAAC"}
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,wBA0B9B,CAAA"}
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"}
@@ -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: metaTitle,
13
- ...collectionConfig?.admin.meta || {},
14
- ...globalConfig?.admin.meta || {}
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 const metaTitle = `API - ${entityLabel}`\n const description = `API - ${entityLabel}`\n\n return Promise.resolve(\n meta({\n ...(config.admin.meta || {}),\n description,\n keywords: 'API',\n serverURL: config.serverURL,\n title: metaTitle,\n ...(collectionConfig?.admin.meta || {}),\n ...(globalConfig?.admin.meta || {}),\n }),\n )\n}\n"],"names":["getTranslation","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","entityLabel","labels","singular","label","metaTitle","description","Promise","resolve","admin","keywords","serverURL","title"],"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,MAAMK,YAAY,CAAC,MAAM,EAAEJ,YAAY,CAAC;IACxC,MAAMK,cAAc,CAAC,MAAM,EAAEL,YAAY,CAAC;IAE1C,OAAOM,QAAQC,OAAO,CACpBb,KAAK;QACH,GAAIG,OAAOW,KAAK,CAACd,IAAI,IAAI,CAAC,CAAC;QAC3BW;QACAI,UAAU;QACVC,WAAWb,OAAOa,SAAS;QAC3BC,OAAOP;QACP,GAAIR,kBAAkBY,MAAMd,QAAQ,CAAC,CAAC;QACtC,GAAII,cAAcU,MAAMd,QAAQ,CAAC,CAAC;IACpC;AAEJ,EAAC"}
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
- }) => EditViewComponent;
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,iBAqBH,CAAA"}
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' && typeof views?.edit !== 'function') {
4
- const foundViewConfig = Object.entries(views.edit).find(([, view])=>{
5
- if (typeof view === 'object' && typeof view !== 'function' && 'path' in view) {
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
- return isPathMatchingRoute({
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 foundViewConfig.Component;
21
+ return {
22
+ Component: foundViewConfig.Component,
23
+ viewKey
24
+ };
17
25
  }
18
26
  }
19
- return null;
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' && typeof views?.edit !== 'function') {\n const foundViewConfig = Object.entries(views.edit).find(([, view]) => {\n if (typeof view === 'object' && typeof view !== 'function' && 'path' in view) {\n const viewPath = `${baseRoute}${view.path}`\n\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: viewPath,\n })\n }\n return false\n })?.[1]\n\n if (foundViewConfig && 'Component' in foundViewConfig) {\n return foundViewConfig.Component\n }\n }\n\n return null\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","baseRoute","currentRoute","views","edit","foundViewConfig","Object","entries","find","view","viewPath","path","exact","Component"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,iCAAgC;AAEpE,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,SAAS,EACTC,YAAY,EACZC,KAAK,EAON;IACC,IAAI,OAAOA,OAAOC,SAAS,YAAY,OAAOD,OAAOC,SAAS,YAAY;QACxE,MAAMC,kBAAkBC,OAAOC,OAAO,CAACJ,MAAMC,IAAI,EAAEI,IAAI,CAAC,CAAC,GAAGC,KAAK;YAC/D,IAAI,OAAOA,SAAS,YAAY,OAAOA,SAAS,cAAc,UAAUA,MAAM;gBAC5E,MAAMC,WAAW,CAAC,EAAET,UAAU,EAAEQ,KAAKE,IAAI,CAAC,CAAC;gBAE3C,OAAOZ,oBAAoB;oBACzBG;oBACAU,OAAO;oBACPD,MAAMD;gBACR;YACF;YACA,OAAO;QACT,IAAI,CAAC,EAAE;QAEP,IAAIL,mBAAmB,eAAeA,iBAAiB;YACrD,OAAOA,gBAAgBQ,SAAS;QAClC;IACF;IAEA,OAAO;AACT,EAAC"}
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;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAU5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACnD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAC5C,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBAsF9B,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/api`
21
- if (params.segments.length === 4 && params.segments[3] === 'api') {
22
- fn = apiMeta;
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/preview`
25
- if (params.segments.length === 4 && params.segments[3] === 'preview') {
26
- fn = livePreviewMeta;
27
- }
28
- // `/:id/versions`
29
- if (params.segments.length === 4 && params.segments[3] === 'versions') {
30
- fn = versionsMeta;
31
- }
32
- // `/:id/versions/:version`
33
- if (params.segments.length === 5 && params.segments[3] === 'versions') {
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
- // `/:slug`
53
+ // `/:global`
39
54
  if (params.segments?.length === 2) {
40
55
  fn = editMeta;
41
56
  }
42
- // `/:slug/api`
43
- if (params.segments?.length === 3 && params.segments[2] === 'api') {
44
- fn = apiMeta;
45
- }
46
- // `/:slug/preview`
47
- if (params.segments?.length === 3 && params.segments[2] === 'preview') {
48
- fn = livePreviewMeta;
49
- }
50
- // `/:slug/versions`
51
- if (params.segments?.length === 3 && params.segments[2] === 'versions') {
52
- fn = versionsMeta;
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
- // `/:slug/versions/:version`
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/api`\n if (params.segments.length === 4 && params.segments[3] === 'api') {\n fn = apiMeta\n }\n\n // `/:id/preview`\n if (params.segments.length === 4 && params.segments[3] === 'preview') {\n fn = livePreviewMeta\n }\n\n // `/:id/versions`\n if (params.segments.length === 4 && params.segments[3] === 'versions') {\n fn = versionsMeta\n }\n\n // `/:id/versions/:version`\n if (params.segments.length === 5 && params.segments[3] === 'versions') {\n fn = versionMeta\n }\n }\n\n if (isGlobal) {\n // `/:slug`\n if (params.segments?.length === 2) {\n fn = editMeta\n }\n\n // `/:slug/api`\n if (params.segments?.length === 3 && params.segments[2] === 'api') {\n fn = apiMeta\n }\n\n // `/:slug/preview`\n if (params.segments?.length === 3 && params.segments[2] === 'preview') {\n fn = livePreviewMeta\n }\n\n // `/:slug/versions`\n if (params.segments?.length === 3 && params.segments[2] === 'versions') {\n fn = versionsMeta\n }\n\n // `/:slug/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 }\n\n return generateNotFoundMeta({ config, i18n })\n}\n"],"names":["getNextRequestI18n","generateMetadata","apiMeta","editMeta","livePreviewMeta","generateNotFoundMeta","versionMeta","versionsMeta","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","i18n"],"mappings":"AAKA,SAASA,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,oBAAoBC,OAAO,QAAQ,iBAAgB;AAC5D,SAASD,oBAAoBE,QAAQ,QAAQ,kBAAiB;AAC9D,SAASF,oBAAoBG,eAAe,QAAQ,yBAAwB;AAC5E,SAASC,oBAAoB,QAAQ,sBAAqB;AAC1D,SAASJ,oBAAoBK,WAAW,QAAQ,qBAAoB;AACpE,SAASL,oBAAoBM,YAAY,QAAQ,sBAAqB;AAStE,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,MAAM,EACP;IACC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,IAAIE,KAAsC;IAE1C,MAAM,CAACC,WAAW,GAAGF;IACrB,MAAMG,eAAeD,eAAe;IACpC,MAAME,WAAWF,eAAe;IAEhC,MAAMG,YACJD,YAAYE,QAAQH,gBAAgBH,UAAUO,SAAS,KAAKP,QAAQ,CAAC,EAAE,KAAK;IAE9E,IAAIG,cAAc;QAChB,SAAS;QACT,IAAIJ,OAAOC,QAAQ,CAACO,MAAM,KAAK,GAAG;YAChCN,KAAKX;QACP;QAEA,aAAa;QACb,IAAIS,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,OAAO;YAChEC,KAAKZ;QACP;QAEA,iBAAiB;QACjB,IAAIU,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,WAAW;YACpEC,KAAKV;QACP;QAEA,kBAAkB;QAClB,IAAIQ,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACrEC,KAAKP;QACP;QAEA,2BAA2B;QAC3B,IAAIK,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACrEC,KAAKR;QACP;IACF;IAEA,IAAIW,UAAU;QACZ,WAAW;QACX,IAAIL,OAAOC,QAAQ,EAAEO,WAAW,GAAG;YACjCN,KAAKX;QACP;QAEA,eAAe;QACf,IAAIS,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,OAAO;YACjEC,KAAKZ;QACP;QAEA,mBAAmB;QACnB,IAAIU,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,WAAW;YACrEC,KAAKV;QACP;QAEA,oBAAoB;QACpB,IAAIQ,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACtEC,KAAKP;QACP;QAEA,6BAA6B;QAC7B,IAAIK,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACtEC,KAAKR;QACP;IACF;IAEA,MAAMe,OAAO,MAAMrB,mBAAmB;QACpCU;IACF;IAEA,IAAI,OAAOI,OAAO,YAAY;QAC5B,OAAOA,GAAG;YACRL;YACAC;YACAC;YACAU;YACAH;QACF;IACF;IAEA,OAAOb,qBAAqB;QAAEK;QAAQW;IAAK;AAC7C,EAAC"}
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,+EAM5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,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;CAC1C,GAAG,IA6SH,CAAA"}
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"}