@payloadcms/next 3.0.0-canary.98cbdb9 → 3.0.0-canary.9beaa28

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 (63) hide show
  1. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  3. package/dist/elements/DocumentHeader/index.scss +1 -1
  4. package/dist/prod/styles.css +1 -1
  5. package/dist/utilities/getPayloadHMR.d.ts +1 -1
  6. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  7. package/dist/utilities/getPayloadHMR.js +3 -2
  8. package/dist/utilities/getPayloadHMR.js.map +1 -1
  9. package/dist/utilities/meta.js +4 -1
  10. package/dist/utilities/meta.js.map +1 -1
  11. package/dist/views/API/meta.d.ts.map +1 -1
  12. package/dist/views/API/meta.js +10 -6
  13. package/dist/views/API/meta.js.map +1 -1
  14. package/dist/views/Account/Settings/index.d.ts +3 -3
  15. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  16. package/dist/views/Account/Settings/index.js +1 -0
  17. package/dist/views/Account/Settings/index.js.map +1 -1
  18. package/dist/views/Document/getCustomViewByRoute.d.ts +4 -1
  19. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  20. package/dist/views/Document/getCustomViewByRoute.js +16 -6
  21. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  22. package/dist/views/Document/getMetaBySegment.d.ts +2 -1
  23. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  24. package/dist/views/Document/getMetaBySegment.js +73 -28
  25. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  26. package/dist/views/Document/getViewsFromConfig.d.ts +9 -3
  27. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  28. package/dist/views/Document/getViewsFromConfig.js +90 -47
  29. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  30. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  31. package/dist/views/Edit/Default/Auth/APIKey.js +1 -0
  32. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  33. package/dist/views/Edit/meta.d.ts.map +1 -1
  34. package/dist/views/Edit/meta.js +30 -19
  35. package/dist/views/Edit/meta.js.map +1 -1
  36. package/dist/views/List/Default/index.d.ts.map +1 -1
  37. package/dist/views/List/Default/index.js +26 -30
  38. package/dist/views/List/Default/index.js.map +1 -1
  39. package/dist/views/List/Default/index.scss +3 -11
  40. package/dist/views/LivePreview/meta.d.ts.map +1 -1
  41. package/dist/views/LivePreview/meta.js +2 -1
  42. package/dist/views/LivePreview/meta.js.map +1 -1
  43. package/dist/views/Root/generateCustomViewMetadata.d.ts +11 -0
  44. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -0
  45. package/dist/views/Root/generateCustomViewMetadata.js +23 -0
  46. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  47. package/dist/views/Root/getCustomViewByRoute.d.ts +6 -2
  48. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  49. package/dist/views/Root/getCustomViewByRoute.js +20 -5
  50. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  51. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  52. package/dist/views/Root/getViewFromConfig.js +7 -7
  53. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  54. package/dist/views/Root/meta.d.ts.map +1 -1
  55. package/dist/views/Root/meta.js +19 -2
  56. package/dist/views/Root/meta.js.map +1 -1
  57. package/dist/views/Version/meta.d.ts.map +1 -1
  58. package/dist/views/Version/meta.js +24 -19
  59. package/dist/views/Version/meta.js.map +1 -1
  60. package/dist/views/Versions/meta.d.ts.map +1 -1
  61. package/dist/views/Versions/meta.js +24 -19
  62. package/dist/views/Versions/meta.js.map +1 -1
  63. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListSelection,\n Pagination,\n PerPage,\n Pill,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo()\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n if (collectionConfig.upload) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n <header className={`${baseClass}__header`}>\n {Header || (\n <Fragment>\n <h1>{getTranslation(labels?.plural, i18n)}</h1>\n {hasCreatePermission && (\n <Pill\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Pill>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {description && (\n <div className={`${baseClass}__sub-header`}>\n <RenderComponent\n Component={ViewDescription}\n clientProps={{ description }}\n mappedComponent={Description}\n />\n </div>\n )}\n </Fragment>\n )}\n </header>\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"names":["getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListSelection","Pagination","PerPage","Pill","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","useConfig","useEditDepth","useListInfo","useListQuery","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","collectionSlug","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","getEntityConfig","collectionConfig","admin","components","Description","afterList","afterListTable","beforeList","beforeListTable","views","list","actions","description","fields","labels","i18n","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","upload","map","doc","filesize","label","plural","div","className","mappedComponent","totalDocs","header","h1","aria-label","t","singular","to","Component","clientProps","join","count","length","customCellContext","uploadConfig","p","el","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListHeader,\n ListSelection,\n Pagination,\n PerPage,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo()\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n if (collectionConfig.upload) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n {Header || (\n <ListHeader heading={getTranslation(labels?.plural, i18n)}>\n {hasCreatePermission && (\n <Button\n Link={Link}\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n buttonStyle=\"pill\"\n el=\"link\"\n size=\"small\"\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Button>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {(description || Description) && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription Description={Description} description={description} />\n </div>\n )}\n </ListHeader>\n )}\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"names":["getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListHeader","ListSelection","Pagination","PerPage","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","useConfig","useEditDepth","useListInfo","useListQuery","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","collectionSlug","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","getEntityConfig","collectionConfig","admin","components","Description","afterList","afterListTable","beforeList","beforeListTable","views","list","actions","description","fields","labels","i18n","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","upload","map","doc","filesize","label","plural","div","className","mappedComponent","totalDocs","heading","aria-label","t","singular","buttonStyle","el","size","to","join","count","length","customCellContext","uploadConfig","p","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection"],"mappings":"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"}
@@ -11,21 +11,13 @@
11
11
  }
12
12
  }
13
13
 
14
- &__header {
15
- display: flex;
16
- align-items: flex-end;
17
- flex-wrap: wrap;
18
- gap: base(0.8);
19
-
20
- h1 {
21
- margin: 0;
22
- }
23
-
14
+ .list-header {
24
15
  a {
25
16
  text-decoration: none;
26
17
  }
27
18
 
28
- .pill {
19
+ .btn--withoutPopup,
20
+ .btn--withPopup {
29
21
  position: relative;
30
22
  margin: 0 0 base(0.2);
31
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAa3B,CAAA"}
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"}
@@ -4,7 +4,8 @@ export const generateMetadata = async ({ collectionConfig, config, globalConfig,
4
4
  config,
5
5
  globalConfig,
6
6
  i18n,
7
- isEditing
7
+ isEditing,
8
+ view: 'livePreview'
8
9
  });
9
10
 
10
11
  //# sourceMappingURL=meta.js.map
@@ -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;IACF,GAAE"}
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
- }) => ViewFromConfig;
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.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,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,cA8BH,CAAA"}
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
- const foundViewConfig = views && typeof views === 'object' && Object.entries(views).find(([, view])=>{
6
- return isPathMatchingRoute({
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
- })?.[1];
14
+ if (isMatching) {
15
+ viewKey = key;
16
+ }
17
+ return isMatching;
18
+ })?.[1] || undefined;
14
19
  if (!foundViewConfig) {
15
- return null;
20
+ return {
21
+ view: {
22
+ Component: null
23
+ },
24
+ viewConfig: null,
25
+ viewKey: null
26
+ };
16
27
  }
17
28
  return {
18
- payloadComponent: foundViewConfig.Component
29
+ view: {
30
+ payloadComponent: foundViewConfig.Component
31
+ },
32
+ viewConfig: foundViewConfig,
33
+ viewKey
19
34
  };
20
35
  };
21
36
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/getCustomViewByRoute.tsx"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport type { ViewFromConfig } from './getViewFromConfig.js'\n\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n config,\n currentRoute: currentRouteWithAdmin,\n}: {\n config: SanitizedConfig\n currentRoute: string\n}): ViewFromConfig => {\n const {\n admin: {\n components: { views },\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = currentRouteWithAdmin.replace(adminRoute, '')\n\n const foundViewConfig =\n views &&\n typeof views === 'object' &&\n Object.entries(views).find(([, view]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: view.exact,\n path: view.path,\n sensitive: view.sensitive,\n strict: view.strict,\n })\n })?.[1]\n\n if (!foundViewConfig) {\n return null\n }\n\n return {\n payloadComponent: foundViewConfig.Component,\n }\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","config","currentRoute","currentRouteWithAdmin","admin","components","views","routes","adminRoute","replace","foundViewConfig","Object","entries","find","view","exact","path","sensitive","strict","payloadComponent","Component"],"mappings":"AAIA,SAASA,mBAAmB,QAAQ,2BAA0B;AAE9D,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,MAAM,EACNC,cAAcC,qBAAqB,EAIpC;IACC,MAAM,EACJC,OAAO,EACLC,YAAY,EAAEC,KAAK,EAAE,EACtB,EACDC,QAAQ,EAAEH,OAAOI,UAAU,EAAE,EAC9B,GAAGP;IAEJ,MAAMC,eAAeC,sBAAsBM,OAAO,CAACD,YAAY;IAE/D,MAAME,kBACJJ,SACA,OAAOA,UAAU,YACjBK,OAAOC,OAAO,CAACN,OAAOO,IAAI,CAAC,CAAC,GAAGC,KAAK;QAClC,OAAOf,oBAAoB;YACzBG;YACAa,OAAOD,KAAKC,KAAK;YACjBC,MAAMF,KAAKE,IAAI;YACfC,WAAWH,KAAKG,SAAS;YACzBC,QAAQJ,KAAKI,MAAM;QACrB;IACF,IAAI,CAAC,EAAE;IAET,IAAI,CAACR,iBAAiB;QACpB,OAAO;IACT;IAEA,OAAO;QACLS,kBAAkBT,gBAAgBU,SAAS;IAC7C;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Root/getCustomViewByRoute.ts"],"sourcesContent":["import type { AdminViewConfig, SanitizedConfig } from 'payload'\n\nimport type { ViewFromConfig } from './getViewFromConfig.js'\n\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n config,\n currentRoute: currentRouteWithAdmin,\n}: {\n config: SanitizedConfig\n currentRoute: string\n}): {\n view: ViewFromConfig\n viewConfig: AdminViewConfig\n viewKey: string\n} => {\n const {\n admin: {\n components: { views },\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = currentRouteWithAdmin.replace(adminRoute, '')\n let viewKey: string\n\n const foundViewConfig =\n (views &&\n typeof views === 'object' &&\n Object.entries(views).find(([key, view]) => {\n const isMatching = isPathMatchingRoute({\n currentRoute,\n exact: view.exact,\n path: view.path,\n sensitive: view.sensitive,\n strict: view.strict,\n })\n\n if (isMatching) {\n viewKey = key\n }\n\n return isMatching\n })?.[1]) ||\n undefined\n\n if (!foundViewConfig) {\n return {\n view: {\n Component: null,\n },\n viewConfig: null,\n viewKey: null,\n }\n }\n\n return {\n view: {\n payloadComponent: foundViewConfig.Component,\n },\n viewConfig: foundViewConfig,\n viewKey,\n }\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","config","currentRoute","currentRouteWithAdmin","admin","components","views","routes","adminRoute","replace","viewKey","foundViewConfig","Object","entries","find","key","view","isMatching","exact","path","sensitive","strict","undefined","Component","viewConfig","payloadComponent"],"mappings":"AAIA,SAASA,mBAAmB,QAAQ,2BAA0B;AAE9D,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,MAAM,EACNC,cAAcC,qBAAqB,EAIpC;IAKC,MAAM,EACJC,OAAO,EACLC,YAAY,EAAEC,KAAK,EAAE,EACtB,EACDC,QAAQ,EAAEH,OAAOI,UAAU,EAAE,EAC9B,GAAGP;IAEJ,MAAMC,eAAeC,sBAAsBM,OAAO,CAACD,YAAY;IAC/D,IAAIE;IAEJ,MAAMC,kBACJ,AAACL,SACC,OAAOA,UAAU,YACjBM,OAAOC,OAAO,CAACP,OAAOQ,IAAI,CAAC,CAAC,CAACC,KAAKC,KAAK;QACrC,MAAMC,aAAalB,oBAAoB;YACrCG;YACAgB,OAAOF,KAAKE,KAAK;YACjBC,MAAMH,KAAKG,IAAI;YACfC,WAAWJ,KAAKI,SAAS;YACzBC,QAAQL,KAAKK,MAAM;QACrB;QAEA,IAAIJ,YAAY;YACdP,UAAUK;QACZ;QAEA,OAAOE;IACT,IAAI,CAAC,EAAE,IACTK;IAEF,IAAI,CAACX,iBAAiB;QACpB,OAAO;YACLK,MAAM;gBACJO,WAAW;YACb;YACAC,YAAY;YACZd,SAAS;QACX;IACF;IAEA,OAAO;QACLM,MAAM;YACJS,kBAAkBd,gBAAgBY,SAAS;QAC7C;QACAC,YAAYb;QACZD;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA4BjE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC,CAAA;AAYD,eAAO,MAAM,iBAAiB,6EAO3B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,KAAG;IACF,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;CAmJpC,CAAA"}
1
+ {"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA4BjE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACpC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC,CAAA;AAYD,eAAO,MAAM,iBAAiB,6EAO3B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,KAAG;IACF,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;CA6JpC,CAAA"}
@@ -58,7 +58,7 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
58
58
  {
59
59
  // users can override the default routes via `admin.routes` config
60
60
  // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}
61
- let viewToRender;
61
+ let viewKey;
62
62
  if (config.admin.routes) {
63
63
  const matchedRoute = Object.entries(config.admin.routes).find(([, route])=>{
64
64
  return isPathMatchingRoute({
@@ -71,10 +71,10 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
71
71
  });
72
72
  });
73
73
  if (matchedRoute) {
74
- viewToRender = matchedRoute[0];
74
+ viewKey = matchedRoute[0];
75
75
  }
76
76
  }
77
- if (oneSegmentViews[viewToRender]) {
77
+ if (oneSegmentViews[viewKey]) {
78
78
  // --> /account
79
79
  // --> /create-first-user
80
80
  // --> /forgot
@@ -83,11 +83,11 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
83
83
  // --> /logout-inactivity
84
84
  // --> /unauthorized
85
85
  ViewToRender = {
86
- Component: oneSegmentViews[viewToRender]
86
+ Component: oneSegmentViews[viewKey]
87
87
  };
88
- templateClassName = baseClasses[viewToRender];
88
+ templateClassName = baseClasses[viewKey];
89
89
  templateType = 'minimal';
90
- if (viewToRender === 'account') {
90
+ if (viewKey === 'account') {
91
91
  initPageOptions.redirectUnauthenticatedUser = true;
92
92
  templateType = 'default';
93
93
  }
@@ -163,7 +163,7 @@ export const getViewFromConfig = ({ adminRoute, config, currentRoute, importMap,
163
163
  ViewToRender = getCustomViewByRoute({
164
164
  config,
165
165
  currentRoute
166
- });
166
+ })?.view;
167
167
  }
168
168
  return {
169
169
  DefaultView: ViewToRender,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/getViewFromConfig.tsx"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, ImportMap, SanitizedConfig } from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { ForgotPasswordView, forgotPasswordBaseClass } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { LoginView, loginBaseClass } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewProps>\n payloadComponent?: AdminViewComponent\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}): {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n templateClassName: string\n templateType: 'default' | 'minimal'\n} => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n initPageOptions.redirectUnauthenticatedUser = true\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewToRender: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewToRender = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewToRender]) {\n // --> /account\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewToRender],\n }\n templateClassName = baseClasses[viewToRender]\n templateType = 'minimal'\n\n if (viewToRender === 'account') {\n initPageOptions.redirectUnauthenticatedUser = true\n templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection) {\n // --> /collections/:collectionSlug\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: ListView,\n }\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = 'global-edit'\n templateType = 'default'\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n templateClassName = 'verify'\n templateType = 'minimal'\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionId\n // --> /collections/:collectionSlug/:id/api\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = `collection-default-edit`\n templateType = 'default'\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionId\n // --> /globals/:globalSlug/api\n initPageOptions.redirectUnauthenticatedUser = true\n ViewToRender = {\n Component: DocumentView,\n }\n templateClassName = `global-edit`\n templateType = 'default'\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })\n }\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n templateClassName,\n templateType,\n }\n}\n"],"names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","ForgotPasswordView","forgotPasswordBaseClass","ListView","LoginView","loginBaseClass","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","isGlobal","isCollection","length","Component","redirectUnauthenticatedUser","viewToRender","admin","routes","matchedRoute","Object","entries","find","exact","path","DefaultView"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/Root/getViewFromConfig.ts"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, ImportMap, SanitizedConfig } from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { ForgotPasswordView, forgotPasswordBaseClass } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { LoginView, loginBaseClass } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewProps>\n payloadComponent?: AdminViewComponent\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}): {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n templateClassName: string\n templateType: 'default' | 'minimal'\n} => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n initPageOptions.redirectUnauthenticatedUser = true\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n initPageOptions.redirectUnauthenticatedUser = true\n templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection) {\n // --> /collections/:collectionSlug\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionId\n // --> /collections/:collectionSlug/:id/api\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionId\n // --> /globals/:globalSlug/api\n initPageOptions.redirectUnauthenticatedUser = true\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n templateClassName,\n templateType,\n }\n}\n"],"names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","ForgotPasswordView","forgotPasswordBaseClass","ListView","LoginView","loginBaseClass","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","isGlobal","isCollection","length","Component","redirectUnauthenticatedUser","viewKey","admin","routes","matchedRoute","Object","entries","find","exact","path","view","DefaultView"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Root/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAwB9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,sCAA6C,IAAI,sBAqGjF,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Root/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA0B9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,sCAA6C,IAAI,sBAqHjF,CAAA"}
@@ -10,6 +10,8 @@ import { generateNotFoundMeta } from '../NotFound/meta.js';
10
10
  import { generateResetPasswordMetadata } from '../ResetPassword/index.js';
11
11
  import { generateUnauthorizedMetadata } from '../Unauthorized/index.js';
12
12
  import { generateVerifyMetadata } from '../Verify/index.js';
13
+ import { generateCustomViewMetadata } from './generateCustomViewMetadata.js';
14
+ import { getCustomViewByRoute } from './getCustomViewByRoute.js';
13
15
  const oneSegmentMeta = {
14
16
  'create-first-user': generateCreateFirstUserMetadata,
15
17
  forgot: generateForgotPasswordMetadata,
@@ -21,6 +23,7 @@ const oneSegmentMeta = {
21
23
  export const generatePageMetadata = async ({ config: configPromise, params })=>{
22
24
  const config = await configPromise;
23
25
  const segments = Array.isArray(params.segments) ? params.segments : [];
26
+ const currentRoute = `/${segments.join('/')}`;
24
27
  const [segmentOne, segmentTwo] = segments;
25
28
  const isGlobal = segmentOne === 'globals';
26
29
  const isCollection = segmentOne === 'collections';
@@ -129,10 +132,24 @@ export const generatePageMetadata = async ({ config: configPromise, params })=>{
129
132
  }
130
133
  }
131
134
  if (!meta) {
132
- meta = await generateNotFoundMeta({
135
+ const { viewConfig, viewKey } = getCustomViewByRoute({
133
136
  config,
134
- i18n
137
+ currentRoute
135
138
  });
139
+ if (viewKey) {
140
+ // Custom Views
141
+ // --> /:path
142
+ meta = await generateCustomViewMetadata({
143
+ config,
144
+ i18n,
145
+ viewConfig
146
+ });
147
+ } else {
148
+ meta = await generateNotFoundMeta({
149
+ config,
150
+ i18n
151
+ });
152
+ }
136
153
  }
137
154
  return meta;
138
155
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountMetadata } from '../Account/index.js'\nimport { generateCreateFirstUserMetadata } from '../CreateFirstUser/index.js'\nimport { generateDashboardMetadata } from '../Dashboard/index.js'\nimport { generateDocumentMetadata } from '../Document/meta.js'\nimport { generateForgotPasswordMetadata } from '../ForgotPassword/index.js'\nimport { generateListMetadata } from '../List/index.js'\nimport { generateLoginMetadata } from '../Login/index.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateResetPasswordMetadata } from '../ResetPassword/index.js'\nimport { generateUnauthorizedMetadata } from '../Unauthorized/index.js'\nimport { generateVerifyMetadata } from '../Verify/index.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserMetadata,\n forgot: generateForgotPasswordMetadata,\n login: generateLoginMetadata,\n logout: generateUnauthorizedMetadata,\n 'logout-inactivity': generateUnauthorizedMetadata,\n unauthorized: generateUnauthorizedMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: {\n [key: string]: string | string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}\n\nexport const generatePageMetadata = async ({ config: configPromise, params }: Args) => {\n const config = await configPromise\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardMetadata({ config, i18n })\n break\n }\n case 1: {\n if (oneSegmentMeta[segmentOne] && segmentOne !== 'account') {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountMetadata({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n meta = await generateResetPasswordMetadata({ config, i18n })\n }\n if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyMetadata({ config, i18n })\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentMetadata({ collectionConfig, config, i18n, params })\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n meta = await generateNotFoundMeta({ config, i18n })\n }\n\n return meta\n}\n"],"names":["getNextRequestI18n","generateAccountMetadata","generateCreateFirstUserMetadata","generateDashboardMetadata","generateDocumentMetadata","generateForgotPasswordMetadata","generateListMetadata","generateLoginMetadata","generateNotFoundMeta","generateResetPasswordMetadata","generateUnauthorizedMetadata","generateVerifyMetadata","oneSegmentMeta","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","segments","Array","isArray","segmentOne","segmentTwo","isGlobal","isCollection","i18n","meta","collectionConfig","length","collections","find","collection","slug","globalConfig","globals","global"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/Root/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountMetadata } from '../Account/index.js'\nimport { generateCreateFirstUserMetadata } from '../CreateFirstUser/index.js'\nimport { generateDashboardMetadata } from '../Dashboard/index.js'\nimport { generateDocumentMetadata } from '../Document/meta.js'\nimport { generateForgotPasswordMetadata } from '../ForgotPassword/index.js'\nimport { generateListMetadata } from '../List/index.js'\nimport { generateLoginMetadata } from '../Login/index.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateResetPasswordMetadata } from '../ResetPassword/index.js'\nimport { generateUnauthorizedMetadata } from '../Unauthorized/index.js'\nimport { generateVerifyMetadata } from '../Verify/index.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserMetadata,\n forgot: generateForgotPasswordMetadata,\n login: generateLoginMetadata,\n logout: generateUnauthorizedMetadata,\n 'logout-inactivity': generateUnauthorizedMetadata,\n unauthorized: generateUnauthorizedMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: {\n [key: string]: string | string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}\n\nexport const generatePageMetadata = async ({ config: configPromise, params }: Args) => {\n const config = await configPromise\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardMetadata({ config, i18n })\n break\n }\n case 1: {\n if (oneSegmentMeta[segmentOne] && segmentOne !== 'account') {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountMetadata({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (segmentOne === 'reset') {\n // --> /reset/:token\n meta = await generateResetPasswordMetadata({ config, i18n })\n }\n if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyMetadata({ config, i18n })\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentMetadata({ collectionConfig, config, i18n, params })\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundMeta({ config, i18n })\n }\n }\n\n return meta\n}\n"],"names":["getNextRequestI18n","generateAccountMetadata","generateCreateFirstUserMetadata","generateDashboardMetadata","generateDocumentMetadata","generateForgotPasswordMetadata","generateListMetadata","generateLoginMetadata","generateNotFoundMeta","generateResetPasswordMetadata","generateUnauthorizedMetadata","generateVerifyMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","isGlobal","isCollection","i18n","meta","collectionConfig","length","collections","find","collection","slug","globalConfig","globals","global","viewConfig","viewKey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Version/meta.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAyC9B,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Version/meta.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAgD9B,CAAA"}
@@ -3,9 +3,9 @@ import { formatDate } from '@payloadcms/ui/shared';
3
3
  import { meta } from '../../utilities/meta.js';
4
4
  export const generateMetadata = async ({ collectionConfig, config, globalConfig, i18n })=>{
5
5
  const { t } = i18n;
6
- let title = '';
7
- let description = '';
8
- const keywords = '';
6
+ let metaToUse = {
7
+ ...config.admin.meta || {}
8
+ };
9
9
  const doc = {} // TODO: figure this out
10
10
  ;
11
11
  const formattedCreatedAt = doc?.createdAt ? formatDate({
@@ -17,27 +17,32 @@ export const generateMetadata = async ({ collectionConfig, config, globalConfig,
17
17
  const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id';
18
18
  const entityLabel = getTranslation(collectionConfig.labels.singular, i18n);
19
19
  const titleFromData = doc?.[useAsTitle];
20
- title = `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`;
21
- description = t('version:viewingVersion', {
22
- documentTitle: doc[useAsTitle],
23
- entityLabel
24
- });
20
+ metaToUse = {
21
+ ...config.admin.meta || {},
22
+ description: t('version:viewingVersion', {
23
+ documentTitle: doc[useAsTitle],
24
+ entityLabel
25
+ }),
26
+ title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`,
27
+ ...collectionConfig?.admin?.meta || {},
28
+ ...collectionConfig?.admin?.components?.views?.edit?.version?.meta || {}
29
+ };
25
30
  }
26
31
  if (globalConfig) {
27
32
  const entityLabel = getTranslation(globalConfig.label, i18n);
28
- title = `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`;
29
- description = t('version:viewingVersionGlobal', {
30
- entityLabel
31
- });
33
+ metaToUse = {
34
+ ...config.admin.meta || {},
35
+ description: t('version:viewingVersionGlobal', {
36
+ entityLabel
37
+ }),
38
+ title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`,
39
+ ...globalConfig?.admin?.meta || {},
40
+ ...globalConfig?.admin?.components?.views?.edit?.version?.meta || {}
41
+ };
32
42
  }
33
43
  return meta({
34
- ...config.admin.meta || {},
35
- description,
36
- keywords,
37
- serverURL: config.serverURL,
38
- title,
39
- ...collectionConfig?.admin.meta || {},
40
- ...globalConfig?.admin.meta || {}
44
+ ...metaToUse,
45
+ serverURL: config.serverURL
41
46
  });
42
47
  };
43
48
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Version/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDate } from '@payloadcms/ui/shared'\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}): Promise<Metadata> => {\n const { t } = i18n\n\n let title: string = ''\n let description: string = ''\n const keywords: string = ''\n\n const doc: any = {} // TODO: figure this out\n\n const formattedCreatedAt = doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: config?.admin?.dateFormat })\n : ''\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n const entityLabel = getTranslation(collectionConfig.labels.singular, i18n)\n const titleFromData = doc?.[useAsTitle]\n title = `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`\n description = t('version:viewingVersion', { documentTitle: doc[useAsTitle], entityLabel })\n }\n\n if (globalConfig) {\n const entityLabel = getTranslation(globalConfig.label, i18n)\n title = `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`\n description = t('version:viewingVersionGlobal', { entityLabel })\n }\n\n return meta({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n ...(collectionConfig?.admin.meta || {}),\n ...(globalConfig?.admin.meta || {}),\n })\n}\n"],"names":["getTranslation","formatDate","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","t","title","description","keywords","doc","formattedCreatedAt","createdAt","date","pattern","admin","dateFormat","useAsTitle","entityLabel","labels","singular","titleFromData","documentTitle","label","serverURL"],"mappings":"AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,wBAAuB;AAIlD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACL;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGD;IAEd,IAAIE,QAAgB;IACpB,IAAIC,cAAsB;IAC1B,MAAMC,WAAmB;IAEzB,MAAMC,MAAW,CAAC,EAAE,wBAAwB;;IAE5C,MAAMC,qBAAqBD,KAAKE,YAC5Bb,WAAW;QAAEc,MAAMH,IAAIE,SAAS;QAAEP;QAAMS,SAASX,QAAQY,OAAOC;IAAW,KAC3E;IAEJ,IAAId,kBAAkB;QACpB,MAAMe,aAAaf,kBAAkBa,OAAOE,cAAc;QAC1D,MAAMC,cAAcpB,eAAeI,iBAAiBiB,MAAM,CAACC,QAAQ,EAAEf;QACrE,MAAMgB,gBAAgBX,KAAK,CAACO,WAAW;QACvCV,QAAQ,CAAC,EAAED,EAAE,mBAAmB,EAAEK,qBAAqB,CAAC,GAAG,EAAEA,mBAAmB,CAAC,GAAG,GAAG,EAAEU,gBAAgB,CAAC,GAAG,EAAEA,cAAc,CAAC,GAAG,GAAG,GAAG,EAAEH,YAAY,CAAC;QACtJV,cAAcF,EAAE,0BAA0B;YAAEgB,eAAeZ,GAAG,CAACO,WAAW;YAAEC;QAAY;IAC1F;IAEA,IAAId,cAAc;QAChB,MAAMc,cAAcpB,eAAeM,aAAamB,KAAK,EAAElB;QACvDE,QAAQ,CAAC,EAAED,EAAE,mBAAmB,EAAEK,qBAAqB,CAAC,GAAG,EAAEA,mBAAmB,CAAC,GAAG,GAAG,EAAEO,YAAY,CAAC;QACtGV,cAAcF,EAAE,gCAAgC;YAAEY;QAAY;IAChE;IAEA,OAAOlB,KAAK;QACV,GAAIG,OAAOY,KAAK,CAACf,IAAI,IAAI,CAAC,CAAC;QAC3BQ;QACAC;QACAe,WAAWrB,OAAOqB,SAAS;QAC3BjB;QACA,GAAIL,kBAAkBa,MAAMf,QAAQ,CAAC,CAAC;QACtC,GAAII,cAAcW,MAAMf,QAAQ,CAAC,CAAC;IACpC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Version/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDate } from '@payloadcms/ui/shared'\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}): Promise<Metadata> => {\n const { t } = i18n\n\n let metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n }\n\n const doc: any = {} // TODO: figure this out\n\n const formattedCreatedAt = doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: config?.admin?.dateFormat })\n : ''\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n const entityLabel = getTranslation(collectionConfig.labels.singular, i18n)\n const titleFromData = doc?.[useAsTitle]\n\n metaToUse = {\n ...(config.admin.meta || {}),\n description: t('version:viewingVersion', { documentTitle: doc[useAsTitle], entityLabel }),\n title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`,\n ...(collectionConfig?.admin?.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.version?.meta || {}),\n }\n }\n\n if (globalConfig) {\n const entityLabel = getTranslation(globalConfig.label, i18n)\n\n metaToUse = {\n ...(config.admin.meta || {}),\n description: t('version:viewingVersionGlobal', { entityLabel }),\n title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`,\n ...(globalConfig?.admin?.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.version?.meta || {}),\n }\n }\n\n return meta({\n ...metaToUse,\n serverURL: config.serverURL,\n })\n}\n"],"names":["getTranslation","formatDate","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","t","metaToUse","admin","doc","formattedCreatedAt","createdAt","date","pattern","dateFormat","useAsTitle","entityLabel","labels","singular","titleFromData","description","documentTitle","title","components","views","edit","version","label","serverURL"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,wBAAuB;AAIlD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACL;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGD;IAEd,IAAIE,YAAwB;QAC1B,GAAIJ,OAAOK,KAAK,CAACR,IAAI,IAAI,CAAC,CAAC;IAC7B;IAEA,MAAMS,MAAW,CAAC,EAAE,wBAAwB;;IAE5C,MAAMC,qBAAqBD,KAAKE,YAC5BZ,WAAW;QAAEa,MAAMH,IAAIE,SAAS;QAAEN;QAAMQ,SAASV,QAAQK,OAAOM;IAAW,KAC3E;IAEJ,IAAIZ,kBAAkB;QACpB,MAAMa,aAAab,kBAAkBM,OAAOO,cAAc;QAC1D,MAAMC,cAAclB,eAAeI,iBAAiBe,MAAM,CAACC,QAAQ,EAAEb;QACrE,MAAMc,gBAAgBV,KAAK,CAACM,WAAW;QAEvCR,YAAY;YACV,GAAIJ,OAAOK,KAAK,CAACR,IAAI,IAAI,CAAC,CAAC;YAC3BoB,aAAad,EAAE,0BAA0B;gBAAEe,eAAeZ,GAAG,CAACM,WAAW;gBAAEC;YAAY;YACvFM,OAAO,CAAC,EAAEhB,EAAE,mBAAmB,EAAEI,qBAAqB,CAAC,GAAG,EAAEA,mBAAmB,CAAC,GAAG,GAAG,EAAES,gBAAgB,CAAC,GAAG,EAAEA,cAAc,CAAC,GAAG,GAAG,GAAG,EAAEH,YAAY,CAAC;YACrJ,GAAId,kBAAkBM,OAAOR,QAAQ,CAAC,CAAC;YACvC,GAAIE,kBAAkBM,OAAOe,YAAYC,OAAOC,MAAMC,SAAS1B,QAAQ,CAAC,CAAC;QAC3E;IACF;IAEA,IAAII,cAAc;QAChB,MAAMY,cAAclB,eAAeM,aAAauB,KAAK,EAAEtB;QAEvDE,YAAY;YACV,GAAIJ,OAAOK,KAAK,CAACR,IAAI,IAAI,CAAC,CAAC;YAC3BoB,aAAad,EAAE,gCAAgC;gBAAEU;YAAY;YAC7DM,OAAO,CAAC,EAAEhB,EAAE,mBAAmB,EAAEI,qBAAqB,CAAC,GAAG,EAAEA,mBAAmB,CAAC,GAAG,GAAG,EAAEM,YAAY,CAAC;YACrG,GAAIZ,cAAcI,OAAOR,QAAQ,CAAC,CAAC;YACnC,GAAII,cAAcI,OAAOe,YAAYC,OAAOC,MAAMC,SAAS1B,QAAQ,CAAC,CAAC;QACvE;IACF;IAEA,OAAOA,KAAK;QACV,GAAGO,SAAS;QACZqB,WAAWzB,OAAOyB,SAAS;IAC7B;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/meta.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBA4C9B,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/meta.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAkD9B,CAAA"}