@payloadcms/next 3.15.1 → 3.15.2-canary.64ffcd8

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 (30) hide show
  1. package/dist/layouts/Root/index.d.ts.map +1 -1
  2. package/dist/layouts/Root/index.js +6 -0
  3. package/dist/layouts/Root/index.js.map +1 -1
  4. package/dist/templates/Default/index.d.ts +4 -0
  5. package/dist/templates/Default/index.d.ts.map +1 -1
  6. package/dist/templates/Default/index.js +9 -1
  7. package/dist/templates/Default/index.js.map +1 -1
  8. package/dist/utilities/getPreference.d.ts +3 -0
  9. package/dist/utilities/getPreference.d.ts.map +1 -0
  10. package/dist/utilities/getPreference.js +29 -0
  11. package/dist/utilities/getPreference.js.map +1 -0
  12. package/dist/utilities/getRequestLocale.d.ts +9 -0
  13. package/dist/utilities/getRequestLocale.d.ts.map +1 -0
  14. package/dist/utilities/getRequestLocale.js +13 -0
  15. package/dist/utilities/getRequestLocale.js.map +1 -0
  16. package/dist/utilities/initPage/index.d.ts.map +1 -1
  17. package/dist/utilities/initPage/index.js +7 -38
  18. package/dist/utilities/initPage/index.js.map +1 -1
  19. package/dist/views/Root/getViewFromConfig.d.ts +1 -0
  20. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  21. package/dist/views/Root/getViewFromConfig.js +2 -0
  22. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  23. package/dist/views/Root/index.d.ts.map +1 -1
  24. package/dist/views/Root/index.js +5 -0
  25. package/dist/views/Root/index.js.map +1 -1
  26. package/package.json +7 -7
  27. package/dist/utilities/getRequestLocales.d.ts +0 -12
  28. package/dist/utilities/getRequestLocales.d.ts.map +0 -1
  29. package/dist/utilities/getRequestLocales.js +0 -35
  30. package/dist/utilities/getRequestLocales.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAO/E,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,8BAA8B,CAAA;AAErC,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,eAAO,MAAM,UAAU,oEAKpB;IACD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;CAC9C,+BA2GA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAO/E,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,8BAA8B,CAAA;AAErC,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,eAAO,MAAM,UAAU,oEAKpB;IACD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;CAC9C,+BAiHA,CAAA"}
@@ -7,6 +7,7 @@ import { getPayload, parseCookies } from 'payload';
7
7
  import React from 'react';
8
8
  import { getNavPrefs } from '../../elements/Nav/getNavPrefs.js';
9
9
  import { getRequestLanguage } from '../../utilities/getRequestLanguage.js';
10
+ import { getRequestLocale } from '../../utilities/getRequestLocale.js';
10
11
  import { getRequestTheme } from '../../utilities/getRequestTheme.js';
11
12
  import { initReq } from '../../utilities/initReq.js';
12
13
  import { checkDependencies } from './checkDependencies.js';
@@ -73,6 +74,10 @@ export const RootLayout = async ({
73
74
  i18n,
74
75
  importMap
75
76
  });
77
+ const locale = await getRequestLocale({
78
+ payload,
79
+ user
80
+ });
76
81
  return /*#__PURE__*/_jsxs("html", {
77
82
  "data-theme": theme,
78
83
  dir: dir,
@@ -90,6 +95,7 @@ export const RootLayout = async ({
90
95
  isNavOpen: navPrefs?.open ?? true,
91
96
  languageCode: languageCode,
92
97
  languageOptions: languageOptions,
98
+ locale: locale?.code,
93
99
  permissions: permissions,
94
100
  serverFunction: serverFunction,
95
101
  switchLanguageServerAction: switchLanguageServerAction,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["rtlLanguages","RootProvider","getClientConfig","headers","getHeaders","cookies","nextCookies","getPayload","parseCookies","React","getNavPrefs","getRequestLanguage","getRequestTheme","initReq","checkDependencies","NestProviders","metadata","description","title","RootLayout","children","config","configPromise","importMap","serverFunction","languageCode","theme","payload","i18n","permissions","user","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","navPrefs","clientConfig","_jsxs","suppressHydrationWarning","admin","_jsx","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","Array","isArray","components","providers","length","serverProps","id"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { getPayload, parseCookies } from 'payload'\nimport React from 'react'\n\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { initReq } from '../../utilities/initReq.js'\nimport { checkDependencies } from './checkDependencies.js'\nimport { NestProviders } from './NestProviders.js'\n\nimport '@payloadcms/ui/scss/app.scss'\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n importMap,\n serverFunction,\n}: {\n readonly children: React.ReactNode\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly serverFunction: ServerFunctionClient\n}) => {\n checkDependencies()\n\n const config = await configPromise\n\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayload({ config, importMap })\n\n const { i18n, permissions, user } = await initReq(config)\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n const cookies = await nextCookies()\n cookies.set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const navPrefs = await getNavPrefs({ payload, user })\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap,\n })\n\n return (\n <html\n data-theme={theme}\n dir={dir}\n lang={languageCode}\n suppressHydrationWarning={config?.admin?.suppressHydrationWarning ?? false}\n >\n <head>\n <style>{`@layer payload-default, payload;`}</style>\n </head>\n <body>\n <RootProvider\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n permissions={permissions}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n user={user}\n >\n {Array.isArray(config.admin?.components?.providers) &&\n config.admin?.components?.providers.length > 0 ? (\n <NestProviders\n importMap={payload.importMap}\n providers={config.admin?.components?.providers}\n serverProps={{\n i18n,\n payload,\n permissions,\n user,\n }}\n >\n {children}\n </NestProviders>\n ) : (\n children\n )}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["rtlLanguages","RootProvider","getClientConfig","headers","getHeaders","cookies","nextCookies","getPayload","parseCookies","React","getNavPrefs","getRequestLanguage","getRequestLocale","getRequestTheme","initReq","checkDependencies","NestProviders","metadata","description","title","RootLayout","children","config","configPromise","importMap","serverFunction","languageCode","theme","payload","i18n","permissions","user","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","navPrefs","clientConfig","locale","_jsxs","suppressHydrationWarning","admin","_jsx","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","code","Array","isArray","components","providers","length","serverProps","id"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { getPayload, parseCookies } from 'payload'\nimport React from 'react'\n\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestLocale } from '../../utilities/getRequestLocale.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { initReq } from '../../utilities/initReq.js'\nimport { checkDependencies } from './checkDependencies.js'\nimport { NestProviders } from './NestProviders.js'\n\nimport '@payloadcms/ui/scss/app.scss'\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n importMap,\n serverFunction,\n}: {\n readonly children: React.ReactNode\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly serverFunction: ServerFunctionClient\n}) => {\n checkDependencies()\n\n const config = await configPromise\n\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayload({ config, importMap })\n\n const { i18n, permissions, user } = await initReq(config)\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n const cookies = await nextCookies()\n cookies.set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const navPrefs = await getNavPrefs({ payload, user })\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap,\n })\n\n const locale = await getRequestLocale({\n payload,\n user,\n })\n\n return (\n <html\n data-theme={theme}\n dir={dir}\n lang={languageCode}\n suppressHydrationWarning={config?.admin?.suppressHydrationWarning ?? false}\n >\n <head>\n <style>{`@layer payload-default, payload;`}</style>\n </head>\n <body>\n <RootProvider\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n locale={locale?.code}\n permissions={permissions}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n user={user}\n >\n {Array.isArray(config.admin?.components?.providers) &&\n config.admin?.components?.providers.length > 0 ? (\n <NestProviders\n importMap={payload.importMap}\n providers={config.admin?.components?.providers}\n serverProps={{\n i18n,\n payload,\n permissions,\n user,\n }}\n >\n {children}\n </NestProviders>\n ) : (\n children\n )}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,11 @@ import './index.scss';
4
4
  export type DefaultTemplateProps = {
5
5
  children?: React.ReactNode;
6
6
  className?: string;
7
+ collectionSlug?: string;
8
+ docID?: number | string;
9
+ globalSlug?: string;
7
10
  viewActions?: CustomComponent[];
11
+ viewType?: 'edit' | 'list';
8
12
  visibleEntities: VisibleEntities;
9
13
  } & ServerProps;
10
14
  export declare const DefaultTemplate: React.FC<DefaultTemplateProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAU5E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2H1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAU5E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgJ1D,CAAA"}
@@ -9,6 +9,9 @@ const baseClass = 'template-default';
9
9
  export const DefaultTemplate = ({
10
10
  children,
11
11
  className,
12
+ collectionSlug,
13
+ docID,
14
+ globalSlug,
12
15
  i18n,
13
16
  locale,
14
17
  params,
@@ -17,6 +20,7 @@ export const DefaultTemplate = ({
17
20
  searchParams,
18
21
  user,
19
22
  viewActions,
23
+ viewType,
20
24
  visibleEntities
21
25
  }) => {
22
26
  const {
@@ -33,6 +37,9 @@ export const DefaultTemplate = ({
33
37
  } = {}
34
38
  } = payload.config || {};
35
39
  const serverProps = React.useMemo(() => ({
40
+ collectionSlug,
41
+ docID,
42
+ globalSlug,
36
43
  i18n,
37
44
  locale,
38
45
  params,
@@ -40,8 +47,9 @@ export const DefaultTemplate = ({
40
47
  permissions,
41
48
  searchParams,
42
49
  user,
50
+ viewType,
43
51
  visibleEntities
44
- }), [i18n, locale, params, payload, permissions, searchParams, user, visibleEntities]);
52
+ }), [i18n, locale, params, payload, permissions, searchParams, user, visibleEntities, globalSlug, collectionSlug, docID, viewType]);
45
53
  const {
46
54
  Actions
47
55
  } = React.useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ActionsProvider","AppHeader","BulkUploadProvider","EntityVisibilityProvider","NavToggler","RenderServerComponent","React","DefaultNav","NavHamburger","Wrapper","baseClass","DefaultTemplate","children","className","i18n","locale","params","payload","permissions","searchParams","user","viewActions","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","serverProps","useMemo","Actions","reduce","acc","action","path","Component","importMap","NavComponent","clientProps","Fallback","_jsx","_jsxs","style","position","id","CustomAvatar","CustomIcon","graphics","Icon"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type { CustomComponent, ServerProps, VisibleEntities } from 'payload'\n\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n EntityVisibilityProvider,\n NavToggler,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport './index.scss'\nimport { NavHamburger } from './NavHamburger/index.js'\nimport { Wrapper } from './Wrapper/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n viewActions?: CustomComponent[]\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n viewActions,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const serverProps = React.useMemo<ServerProps>(\n () => ({\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n }),\n [i18n, locale, params, payload, permissions, searchParams, user, visibleEntities],\n )\n\n const { Actions } = React.useMemo<{\n Actions: Record<string, React.ReactNode>\n }>(() => {\n return {\n Actions: viewActions\n ? viewActions.reduce((acc, action) => {\n if (action) {\n if (typeof action === 'object') {\n acc[action.path] = RenderServerComponent({\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n } else {\n acc[action] = RenderServerComponent({\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n }\n\n return acc\n }, {})\n : undefined,\n }\n }, [payload, serverProps, viewActions])\n\n const NavComponent = RenderServerComponent({\n clientProps: { clientProps: { visibleEntities } },\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps,\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <BulkUploadProvider>\n <ActionsProvider Actions={Actions}>\n {RenderServerComponent({\n clientProps: { clientProps: { visibleEntities } },\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <div className={`${baseClass}__nav-toggler-wrapper`} id=\"nav-toggler\">\n <div className={`${baseClass}__nav-toggler-container`} id=\"nav-toggler\">\n <NavToggler className={`${baseClass}__nav-toggler`}>\n <NavHamburger />\n </NavToggler>\n </div>\n </div>\n <Wrapper baseClass={baseClass} className={className}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader\n CustomAvatar={\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n CustomIcon={\n components?.graphics?.Icon\n ? RenderServerComponent({\n Component: components.graphics.Icon,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ActionsProvider","AppHeader","BulkUploadProvider","EntityVisibilityProvider","NavToggler","RenderServerComponent","React","DefaultNav","NavHamburger","Wrapper","baseClass","DefaultTemplate","children","className","collectionSlug","docID","globalSlug","i18n","locale","params","payload","permissions","searchParams","user","viewActions","viewType","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","serverProps","useMemo","Actions","reduce","acc","action","path","Component","importMap","NavComponent","clientProps","Fallback","_jsx","_jsxs","style","position","id","CustomAvatar","CustomIcon","graphics","Icon"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type { CustomComponent, ServerProps, VisibleEntities } from 'payload'\n\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n EntityVisibilityProvider,\n NavToggler,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport './index.scss'\nimport { NavHamburger } from './NavHamburger/index.js'\nimport { Wrapper } from './Wrapper/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n collectionSlug?: string\n docID?: number | string\n globalSlug?: string\n viewActions?: CustomComponent[]\n viewType?: 'edit' | 'list'\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n viewActions,\n viewType,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const serverProps = React.useMemo<ServerProps>(\n () => ({\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n viewType,\n visibleEntities,\n }),\n [\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n globalSlug,\n collectionSlug,\n docID,\n viewType,\n ],\n )\n\n const { Actions } = React.useMemo<{\n Actions: Record<string, React.ReactNode>\n }>(() => {\n return {\n Actions: viewActions\n ? viewActions.reduce((acc, action) => {\n if (action) {\n if (typeof action === 'object') {\n acc[action.path] = RenderServerComponent({\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n } else {\n acc[action] = RenderServerComponent({\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n }\n\n return acc\n }, {})\n : undefined,\n }\n }, [payload, serverProps, viewActions])\n\n const NavComponent = RenderServerComponent({\n clientProps: { clientProps: { visibleEntities } },\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps,\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <BulkUploadProvider>\n <ActionsProvider Actions={Actions}>\n {RenderServerComponent({\n clientProps: { clientProps: { visibleEntities } },\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <div className={`${baseClass}__nav-toggler-wrapper`} id=\"nav-toggler\">\n <div className={`${baseClass}__nav-toggler-container`} id=\"nav-toggler\">\n <NavToggler className={`${baseClass}__nav-toggler`}>\n <NavHamburger />\n </NavToggler>\n </div>\n </div>\n <Wrapper baseClass={baseClass} className={className}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader\n CustomAvatar={\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n CustomIcon={\n components?.graphics?.Icon\n ? RenderServerComponent({\n Component: components.graphics.Icon,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { Payload, User } from 'payload';
2
+ export declare const getPreference: <T>(key: string, payload: Payload, user: User) => Promise<T>;
3
+ //# sourceMappingURL=getPreference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPreference.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAI5C,eAAO,MAAM,aAAa,GACjB,CAAC,OAAO,MAAM,WAAW,OAAO,QAAQ,IAAI,KAAG,OAAO,CAAC,CAAC,CAmChE,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { cache } from 'react';
2
+ export const getPreference = cache(async (key, payload, user) => {
3
+ let result = null;
4
+ try {
5
+ result = await payload.find({
6
+ collection: 'payload-preferences',
7
+ depth: 0,
8
+ limit: 1,
9
+ user,
10
+ where: {
11
+ and: [{
12
+ 'user.relationTo': {
13
+ equals: payload.config.admin.user
14
+ }
15
+ }, {
16
+ 'user.value': {
17
+ equals: user.id
18
+ }
19
+ }, {
20
+ key: {
21
+ equals: key
22
+ }
23
+ }]
24
+ }
25
+ })?.then(res => res.docs?.[0]?.value);
26
+ } catch (_err) {} // eslint-disable-line no-empty
27
+ return result;
28
+ });
29
+ //# sourceMappingURL=getPreference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPreference.js","names":["cache","getPreference","key","payload","user","result","find","collection","depth","limit","where","and","equals","config","admin","id","then","res","docs","value","_err"],"sources":["../../src/utilities/getPreference.ts"],"sourcesContent":["import type { Payload, User } from 'payload'\n\nimport { cache } from 'react'\n\nexport const getPreference = cache(\n async <T>(key: string, payload: Payload, user: User): Promise<T> => {\n let result: T = null\n\n try {\n result = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: key,\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as T)\n } catch (_err) {} // eslint-disable-line no-empty\n\n return result\n },\n)\n"],"mappings":"AAEA,SAASA,KAAK,QAAQ;AAEtB,OAAO,MAAMC,aAAA,GAAgBD,KAAA,CAC3B,OAAUE,GAAA,EAAaC,OAAA,EAAkBC,IAAA;EACvC,IAAIC,MAAA,GAAY;EAEhB,IAAI;IACFA,MAAA,GAAS,MAAMF,OAAA,CACZG,IAAI,CAAC;MACJC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPL,IAAA;MACAM,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACE,mBAAmB;YACjBC,MAAA,EAAQT,OAAA,CAAQU,MAAM,CAACC,KAAK,CAACV;UAC/B;QACF,GACA;UACE,cAAc;YACZQ,MAAA,EAAQR,IAAA,CAAKW;UACf;QACF,GACA;UACEb,GAAA,EAAK;YACHU,MAAA,EAAQV;UACV;QACF;MAEJ;IACF,IACEc,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE,EAAEC,KAAA;EACnC,EAAE,OAAOC,IAAA,EAAM,CAAC,EAAE;EAElB,OAAOf,MAAA;AACT","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { Locale, Payload, User } from 'payload';
2
+ type GetRequestLocalesArgs = {
3
+ localeFromParams?: string;
4
+ payload: Payload;
5
+ user: User;
6
+ };
7
+ export declare function getRequestLocale({ localeFromParams, payload, user, }: GetRequestLocalesArgs): Promise<Locale>;
8
+ export {};
9
+ //# sourceMappingURL=getRequestLocale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAMpD,KAAK,qBAAqB,GAAG;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,wBAAsB,gBAAgB,CAAC,EACrC,gBAAgB,EAChB,OAAO,EACP,IAAI,GACL,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAezC"}
@@ -0,0 +1,13 @@
1
+ import { findLocaleFromCode } from '@payloadcms/ui/shared';
2
+ import { getPreference } from './getPreference.js';
3
+ export async function getRequestLocale({
4
+ localeFromParams,
5
+ payload,
6
+ user
7
+ }) {
8
+ if (payload.config.localization) {
9
+ return findLocaleFromCode(payload.config.localization, localeFromParams || (await getPreference('locale', payload, user))) || findLocaleFromCode(payload.config.localization, payload.config.localization.defaultLocale || 'en');
10
+ }
11
+ return undefined;
12
+ }
13
+ //# sourceMappingURL=getRequestLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestLocale.js","names":["findLocaleFromCode","getPreference","getRequestLocale","localeFromParams","payload","user","config","localization","defaultLocale","undefined"],"sources":["../../src/utilities/getRequestLocale.ts"],"sourcesContent":["import type { Locale, Payload, User } from 'payload'\n\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\n\nimport { getPreference } from './getPreference.js'\n\ntype GetRequestLocalesArgs = {\n localeFromParams?: string\n payload: Payload\n user: User\n}\n\nexport async function getRequestLocale({\n localeFromParams,\n payload,\n user,\n}: GetRequestLocalesArgs): Promise<Locale> {\n if (payload.config.localization) {\n return (\n findLocaleFromCode(\n payload.config.localization,\n localeFromParams || (await getPreference<Locale['code']>('locale', payload, user)),\n ) ||\n findLocaleFromCode(\n payload.config.localization,\n payload.config.localization.defaultLocale || 'en',\n )\n )\n }\n\n return undefined\n}\n"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ;AAEnC,SAASC,aAAa,QAAQ;AAQ9B,OAAO,eAAeC,iBAAiB;EACrCC,gBAAgB;EAChBC,OAAO;EACPC;AAAI,CACkB;EACtB,IAAID,OAAA,CAAQE,MAAM,CAACC,YAAY,EAAE;IAC/B,OACEP,kBAAA,CACEI,OAAA,CAAQE,MAAM,CAACC,YAAY,EAC3BJ,gBAAA,KAAqB,MAAMF,aAAA,CAA8B,UAAUG,OAAA,EAASC,IAAA,OAE9EL,kBAAA,CACEI,OAAA,CAAQE,MAAM,CAACC,YAAY,EAC3BH,OAAA,CAAQE,MAAM,CAACC,YAAY,CAACC,aAAa,IAAI;EAGnD;EAEA,OAAOC,SAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,SAAS,CAAA;AAQtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAsJ/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA8G/B,CAAA"}
@@ -1,8 +1,8 @@
1
- import { findLocaleFromCode } from '@payloadcms/ui/shared';
2
1
  import { headers as getHeaders } from 'next/headers.js';
3
2
  import { notFound } from 'next/navigation.js';
4
3
  import { createLocalReq, getPayload, isEntityHidden, parseCookies } from 'payload';
5
4
  import * as qs from 'qs-esm';
5
+ import { getRequestLocale } from '../getRequestLocale.js';
6
6
  import { initReq } from '../initReq.js';
7
7
  import { getRouteInfo } from './handleAdminPage.js';
8
8
  import { handleAuthRedirect } from './handleAuthRedirect.js';
@@ -25,7 +25,6 @@ export const initPage = async ({
25
25
  const {
26
26
  collections,
27
27
  globals,
28
- localization,
29
28
  routes: {
30
29
  admin: adminRoute
31
30
  }
@@ -63,42 +62,12 @@ export const initPage = async ({
63
62
  return acc;
64
63
  }, []);
65
64
  req.user = user;
66
- const localeParam = searchParams?.locale;
67
- let locale;
68
- if (localization) {
69
- const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en';
70
- let localeCode = localeParam;
71
- if (!localeCode) {
72
- try {
73
- localeCode = await payload.find({
74
- collection: 'payload-preferences',
75
- depth: 0,
76
- limit: 1,
77
- user,
78
- where: {
79
- and: [{
80
- 'user.relationTo': {
81
- equals: payload.config.admin.user
82
- }
83
- }, {
84
- 'user.value': {
85
- equals: user.id
86
- }
87
- }, {
88
- key: {
89
- equals: 'locale'
90
- }
91
- }]
92
- }
93
- })?.then(res => res.docs?.[0]?.value);
94
- } catch (_err) {} // eslint-disable-line no-empty
95
- }
96
- locale = findLocaleFromCode(localization, localeCode);
97
- if (!locale) {
98
- locale = findLocaleFromCode(localization, defaultLocaleCode);
99
- }
100
- req.locale = locale.code;
101
- }
65
+ const locale = await getRequestLocale({
66
+ localeFromParams: req.query.locale,
67
+ payload,
68
+ user
69
+ });
70
+ req.locale = locale?.code;
102
71
  const visibleEntities = {
103
72
  collections: collections.map(({
104
73
  slug,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["findLocaleFromCode","headers","getHeaders","notFound","createLocalReq","getPayload","isEntityHidden","parseCookies","qs","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","localization","routes","admin","adminRoute","cookies","i18n","permissions","user","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","_err","code","visibleEntities","map","slug","hidden","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { InitPageResult, Locale, VisibleEntities } from 'payload'\n\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { createLocalReq, getPayload, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { initReq } from '../initReq.js'\nimport { getRouteInfo } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\nimport { isCustomAdminView } from './isCustomAdminView.js'\nimport { isPublicAdminRoute } from './shared.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = await getHeaders()\n const payload = await getPayload({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { i18n, permissions, user } = await initReq(payload.config)\n\n // Ideally, we should not need to recreate the req, because\n // we can get it from the above initReq.\n\n // We just need to -overwrite- the url and query of the req\n // we get above. Clone the req? We'll look into that eventually.\n const req = await createLocalReq(\n {\n fallbackLocale: false,\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n },\n },\n payload,\n )\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (_err) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) {\n locale = findLocaleFromCode(localization, defaultLocaleCode)\n }\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n let redirectTo = null\n\n if (\n !permissions.canAccessAdmin &&\n !isPublicAdminRoute({ adminRoute, config: payload.config, route }) &&\n !isCustomAdminView({ adminRoute, config: payload.config, route })\n ) {\n redirectTo = handleAuthRedirect({\n config: payload.config,\n route,\n searchParams,\n user,\n })\n }\n\n const { collectionConfig, collectionSlug, docID, globalConfig, globalSlug } = getRouteInfo({\n adminRoute,\n config: payload.config,\n defaultIDType: payload.db.defaultIDType,\n payload,\n route,\n })\n\n if ((collectionSlug && !collectionConfig) || (globalSlug && !globalConfig)) {\n return notFound()\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n redirectTo,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["headers","getHeaders","notFound","createLocalReq","getPayload","isEntityHidden","parseCookies","qs","getRequestLocale","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","routes","admin","adminRoute","cookies","i18n","permissions","user","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","locale","localeFromParams","code","visibleEntities","map","slug","hidden","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { InitPageResult, VisibleEntities } from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { createLocalReq, getPayload, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getRequestLocale } from '../getRequestLocale.js'\nimport { initReq } from '../initReq.js'\nimport { getRouteInfo } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\nimport { isCustomAdminView } from './isCustomAdminView.js'\nimport { isPublicAdminRoute } from './shared.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = await getHeaders()\n const payload = await getPayload({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { i18n, permissions, user } = await initReq(payload.config)\n\n // Ideally, we should not need to recreate the req, because\n // we can get it from the above initReq.\n\n // We just need to -overwrite- the url and query of the req\n // we get above. Clone the req? We'll look into that eventually.\n const req = await createLocalReq(\n {\n fallbackLocale: false,\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n },\n },\n payload,\n )\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n req.user = user\n\n const locale = await getRequestLocale({\n localeFromParams: req.query.locale as string,\n payload,\n user,\n })\n\n req.locale = locale?.code\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n let redirectTo = null\n\n if (\n !permissions.canAccessAdmin &&\n !isPublicAdminRoute({ adminRoute, config: payload.config, route }) &&\n !isCustomAdminView({ adminRoute, config: payload.config, route })\n ) {\n redirectTo = handleAuthRedirect({\n config: payload.config,\n route,\n searchParams,\n user,\n })\n }\n\n const { collectionConfig, collectionSlug, docID, globalConfig, globalSlug } = getRouteInfo({\n adminRoute,\n config: payload.config,\n defaultIDType: payload.db.defaultIDType,\n payload,\n route,\n })\n\n if ((collectionSlug && !collectionConfig) || (globalSlug && !globalConfig)) {\n return notFound()\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n redirectTo,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"AAGA,SAASA,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,EAAEC,UAAU,EAAEC,cAAc,EAAEC,YAAY,QAAQ;AACzE,YAAYC,EAAA,MAAQ;AAIpB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,QAAA,GAAW,MAAAA,CAAO;EAC7BC,MAAA,EAAQC,aAAa;EACrBC,SAAS;EACTC,KAAK;EACLC;AAAY,CACP;EACL,MAAMnB,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMmB,OAAA,GAAU,MAAMhB,UAAA,CAAW;IAAEW,MAAA,EAAQC,aAAA;IAAeC;EAAU;EACpE,MAAMI,WAAA,GAAc,GAAGd,EAAA,CAAGe,SAAS,CAACH,YAAA,IAAgB,CAAC,GAAG;IAAEI,cAAA,EAAgB;EAAK,IAAI;EAEnF,MAAM;IACJC,WAAW;IACXC,OAAO;IACPC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGR,OAAA,CAAQL,MAAM;EAElB,MAAMc,OAAA,GAAUvB,YAAA,CAAaN,OAAA;EAE7B,MAAM;IAAE8B,IAAI;IAAEC,WAAW;IAAEC;EAAI,CAAE,GAAG,MAAMvB,OAAA,CAAQW,OAAA,CAAQL,MAAM;EAEhE;EACA;EAEA;EACA;EACA,MAAMkB,GAAA,GAAM,MAAM9B,cAAA,CAChB;IACE+B,cAAA,EAAgB;IAChBD,GAAA,EAAK;MACHjC,OAAA;MACAmC,IAAA,EAAMnC,OAAA,CAAQoC,GAAG,CAAC;MAClBN,IAAA,EAAMA,IAAA;MACNO,KAAA,EAAO9B,EAAA,CAAG+B,KAAK,CAACjB,WAAA,EAAa;QAC3BkB,KAAA,EAAO;QACPC,iBAAA,EAAmB;MACrB;MACAC,GAAA,EAAK,GAAGrB,OAAA,CAAQL,MAAM,CAAC2B,SAAS,GAAGxB,KAAA,GAAQC,YAAA,GAAeE,WAAA,GAAc;IAC1E;EACF,GACAD,OAAA;EAGF,MAAMuB,eAAA,GAAkBC,MAAA,CAAOC,OAAO,CAACzB,OAAA,CAAQL,MAAM,CAACe,IAAI,CAACgB,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACzF,CAACC,GAAA,EAAK,CAACC,QAAA,EAAUC,cAAA,CAAe;IAC9B,IAAIN,MAAA,CAAOO,IAAI,CAAC/B,OAAA,CAAQL,MAAM,CAACe,IAAI,CAACgB,kBAAkB,EAAEM,QAAQ,CAACH,QAAA,GAAW;MAC1ED,GAAA,CAAIK,IAAI,CAAC;QACPC,KAAA,EAAOJ,cAAA,CAAeK,YAAY,CAACC,OAAO,CAACC,YAAY;QACvDC,KAAA,EAAOT;MACT;IACF;IAEA,OAAOD,GAAA;EACT,GACA,EAAE;EAGJf,GAAA,CAAID,IAAI,GAAGA,IAAA;EAEX,MAAM2B,MAAA,GAAS,MAAMnD,gBAAA,CAAiB;IACpCoD,gBAAA,EAAkB3B,GAAA,CAAII,KAAK,CAACsB,MAAM;IAClCvC,OAAA;IACAY;EACF;EAEAC,GAAA,CAAI0B,MAAM,GAAGA,MAAA,EAAQE,IAAA;EAErB,MAAMC,eAAA,GAAmC;IACvCtC,WAAA,EAAaA,WAAA,CACVuC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAErC,KAAA,EAAO;QAAEsC;MAAM;IAAE,CAAE,KAAM,CAAC5D,cAAA,CAAe;MAAE4D,MAAA;MAAQjC;IAAK,KAAKgC,IAAA,GAAO,MACjFE,MAAM,CAACC,OAAA;IACV1C,OAAA,EAASA,OAAA,CACNsC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAErC,KAAA,EAAO;QAAEsC;MAAM;IAAE,CAAE,KAAM,CAAC5D,cAAA,CAAe;MAAE4D,MAAA;MAAQjC;IAAK,KAAKgC,IAAA,GAAO,MACjFE,MAAM,CAACC,OAAA;EACZ;EAEA,IAAIC,UAAA,GAAa;EAEjB,IACE,CAACrC,WAAA,CAAYsC,cAAc,IAC3B,CAACxD,kBAAA,CAAmB;IAAEe,UAAA;IAAYb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IAAEG;EAAM,MAChE,CAACN,iBAAA,CAAkB;IAAEgB,UAAA;IAAYb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IAAEG;EAAM,IAC/D;IACAkD,UAAA,GAAazD,kBAAA,CAAmB;MAC9BI,MAAA,EAAQK,OAAA,CAAQL,MAAM;MACtBG,KAAA;MACAC,YAAA;MACAa;IACF;EACF;EAEA,MAAM;IAAEsC,gBAAgB;IAAEC,cAAc;IAAEC,KAAK;IAAEC,YAAY;IAAEC;EAAU,CAAE,GAAGhE,YAAA,CAAa;IACzFkB,UAAA;IACAb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IACtB4D,aAAA,EAAevD,OAAA,CAAQwD,EAAE,CAACD,aAAa;IACvCvD,OAAA;IACAF;EACF;EAEA,IAAIqD,cAAC,IAAkB,CAACD,gBAAA,IAAsBI,UAAA,IAAc,CAACD,YAAA,EAAe;IAC1E,OAAOvE,QAAA;EACT;EAEA,OAAO;IACLoE,gBAAA;IACAzC,OAAA;IACA2C,KAAA;IACAC,YAAA;IACA9B,eAAA;IACAgB,MAAA;IACA5B,WAAA;IACAqC,UAAA;IACAnC,GAAA;IACAsB,YAAA,EAAczB,IAAA,CAAKyB,YAAY;IAC/BO;EACF;AACF","ignoreList":[]}
@@ -9,6 +9,7 @@ type ServerPropsFromView = {
9
9
  collectionConfig?: SanitizedConfig['collections'][number];
10
10
  globalConfig?: SanitizedConfig['globals'][number];
11
11
  viewActions: CustomComponent[];
12
+ viewType?: 'edit' | 'list';
12
13
  };
13
14
  type GetViewFromConfigArgs = {
14
15
  adminRoute: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EAEf,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAChB,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;AA0BD,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,WAAW,EAAE,eAAe,EAAE,CAAA;CAC/B,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,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,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,iBAAiB,6EAO3B,qBAAqB,KAAG,uBAgS1B,CAAA"}
1
+ {"version":3,"file":"getViewFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getViewFromConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EAEf,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAChB,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;AA0BD,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,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,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,iBAAiB,6EAO3B,qBAAqB,KAAG,uBAkS1B,CAAA"}
@@ -142,6 +142,7 @@ export const getViewFromConfig = ({
142
142
  };
143
143
  templateClassName = `${segmentTwo}-list`;
144
144
  templateType = 'default';
145
+ serverProps.viewType = 'list';
145
146
  serverProps.viewActions = serverProps.viewActions.concat(matchedCollection.admin.components?.views?.list?.actions);
146
147
  } else if (isGlobal && matchedGlobal) {
147
148
  // --> /globals/:globalSlug
@@ -178,6 +179,7 @@ export const getViewFromConfig = ({
178
179
  };
179
180
  templateClassName = `collection-default-edit`;
180
181
  templateType = 'default';
182
+ serverProps.viewType = 'edit';
181
183
  // Adds view actions to the current collection view
182
184
  if (matchedCollection.admin?.components?.views?.edit) {
183
185
  if ('root' in matchedCollection.admin.components.views.edit) {
@@ -1 +1 @@
1
- {"version":3,"file":"getViewFromConfig.js","names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewActions","editConfig","viewKey","actions","undefined","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","isGlobal","isCollection","matchedCollection","matchedGlobal","serverProps","viewActions","admin","components","collections","find","slug","collectionConfig","globals","globalConfig","length","Component","routes","matchedRoute","Object","entries","exact","path","concat","views","list","edit","view","reverse","DefaultView"],"sources":["../../../src/views/Root/getViewFromConfig.ts"],"sourcesContent":["import type {\n AdminViewComponent,\n AdminViewProps,\n CustomComponent,\n EditConfig,\n ImportMap,\n SanitizedConfig,\n} 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 { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } 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\nfunction getViewActions({\n editConfig,\n viewKey,\n}: {\n editConfig: EditConfig\n viewKey: keyof EditConfig\n}): CustomComponent[] | undefined {\n if (editConfig && viewKey in editConfig && 'actions' in editConfig[viewKey]) {\n return editConfig[viewKey].actions\n }\n\n return undefined\n}\n\ntype ServerPropsFromView = {\n collectionConfig?: SanitizedConfig['collections'][number]\n globalConfig?: SanitizedConfig['globals'][number]\n viewActions: CustomComponent[]\n}\n\ntype GetViewFromConfigArgs = {\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\ntype GetViewFromConfigResult = {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n serverProps: ServerPropsFromView\n templateClassName: string\n templateType: 'default' | 'minimal'\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: GetViewFromConfigArgs): GetViewFromConfigResult => {\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, segmentThree, segmentFour, segmentFive] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n let matchedCollection: SanitizedConfig['collections'][number] = undefined\n let matchedGlobal: SanitizedConfig['globals'][number] = undefined\n\n const serverProps: ServerPropsFromView = {\n viewActions: config?.admin?.components?.actions || [],\n }\n\n if (isCollection) {\n matchedCollection = config.collections.find(({ slug }) => slug === segmentTwo)\n serverProps.collectionConfig = matchedCollection\n }\n\n if (isGlobal) {\n matchedGlobal = config.globals.find(({ slug }) => slug === segmentTwo)\n serverProps.globalConfig = matchedGlobal\n }\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 }\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 templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection && matchedCollection) {\n // --> /collections/:collectionSlug\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n serverProps.viewActions = serverProps.viewActions.concat(\n matchedCollection.admin.components?.views?.list?.actions,\n )\n } else if (isGlobal && matchedGlobal) {\n // --> /globals/:globalSlug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\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 && matchedCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n // Adds view actions to the current collection view\n if (matchedCollection.admin?.components?.views?.edit) {\n if ('root' in matchedCollection.admin.components.views.edit) {\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views?.edit,\n viewKey: 'root',\n }),\n )\n } else {\n if (segmentFive) {\n if (segmentFour === 'versions') {\n // add version view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views?.edit,\n viewKey: 'version',\n }),\n )\n }\n } else if (segmentFour) {\n if (segmentFour === 'versions') {\n // add versions view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'versions',\n }),\n )\n } else if (segmentFour === 'preview') {\n // add livePreview view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'livePreview',\n }),\n )\n } else if (segmentFour === 'api') {\n // add api view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'api',\n }),\n )\n }\n } else if (segmentThree) {\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'default',\n }),\n )\n }\n }\n }\n } else if (isGlobal && matchedGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n // Adds view actions to the current global view\n if (matchedGlobal.admin?.components?.views?.edit) {\n if ('root' in matchedGlobal.admin.components.views.edit) {\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin.components?.views?.edit,\n viewKey: 'root',\n }),\n )\n } else {\n if (segmentFour) {\n if (segmentThree === 'versions') {\n // add version view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'version',\n }),\n )\n }\n } else if (segmentThree) {\n if (segmentThree === 'versions') {\n // add versions view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'versions',\n }),\n )\n } else if (segmentThree === 'preview') {\n // add livePreview view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'livePreview',\n }),\n )\n } else if (segmentThree === 'api') {\n // add api view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'api',\n }),\n )\n }\n }\n }\n }\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n serverProps.viewActions.reverse()\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getViewFromConfig.js","names":["formatAdminURL","Account","CreateFirstUserView","Dashboard","Document","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getCustomViewByRoute","isPathMatchingRoute","baseClasses","account","forgot","login","reset","verify","oneSegmentViews","createFirstUser","inactivity","logout","unauthorized","getViewActions","editConfig","viewKey","actions","undefined","getViewFromConfig","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","initPageOptions","route","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","isGlobal","isCollection","matchedCollection","matchedGlobal","serverProps","viewActions","admin","components","collections","find","slug","collectionConfig","globals","globalConfig","length","Component","routes","matchedRoute","Object","entries","exact","path","viewType","concat","views","list","edit","view","reverse","DefaultView"],"sources":["../../../src/views/Root/getViewFromConfig.ts"],"sourcesContent":["import type {\n AdminViewComponent,\n AdminViewProps,\n CustomComponent,\n EditConfig,\n ImportMap,\n SanitizedConfig,\n} 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 { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } 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\nfunction getViewActions({\n editConfig,\n viewKey,\n}: {\n editConfig: EditConfig\n viewKey: keyof EditConfig\n}): CustomComponent[] | undefined {\n if (editConfig && viewKey in editConfig && 'actions' in editConfig[viewKey]) {\n return editConfig[viewKey].actions\n }\n\n return undefined\n}\n\ntype ServerPropsFromView = {\n collectionConfig?: SanitizedConfig['collections'][number]\n globalConfig?: SanitizedConfig['globals'][number]\n viewActions: CustomComponent[]\n viewType?: 'edit' | 'list'\n}\n\ntype GetViewFromConfigArgs = {\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\ntype GetViewFromConfigResult = {\n DefaultView: ViewFromConfig\n initPageOptions: Parameters<typeof initPage>[0]\n serverProps: ServerPropsFromView\n templateClassName: string\n templateType: 'default' | 'minimal'\n}\n\nexport const getViewFromConfig = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: GetViewFromConfigArgs): GetViewFromConfigResult => {\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, segmentThree, segmentFour, segmentFive] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n let matchedCollection: SanitizedConfig['collections'][number] = undefined\n let matchedGlobal: SanitizedConfig['globals'][number] = undefined\n\n const serverProps: ServerPropsFromView = {\n viewActions: config?.admin?.components?.actions || [],\n }\n\n if (isCollection) {\n matchedCollection = config.collections.find(({ slug }) => slug === segmentTwo)\n serverProps.collectionConfig = matchedCollection\n }\n\n if (isGlobal) {\n matchedGlobal = config.globals.find(({ slug }) => slug === segmentTwo)\n serverProps.globalConfig = matchedGlobal\n }\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 }\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 templateType = 'default'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n }\n\n if (isCollection && matchedCollection) {\n // --> /collections/:collectionSlug\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n serverProps.viewType = 'list'\n serverProps.viewActions = serverProps.viewActions.concat(\n matchedCollection.admin.components?.views?.list?.actions,\n )\n } else if (isGlobal && matchedGlobal) {\n // --> /globals/:globalSlug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\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 && matchedCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n serverProps.viewType = 'edit'\n\n // Adds view actions to the current collection view\n if (matchedCollection.admin?.components?.views?.edit) {\n if ('root' in matchedCollection.admin.components.views.edit) {\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views?.edit,\n viewKey: 'root',\n }),\n )\n } else {\n if (segmentFive) {\n if (segmentFour === 'versions') {\n // add version view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views?.edit,\n viewKey: 'version',\n }),\n )\n }\n } else if (segmentFour) {\n if (segmentFour === 'versions') {\n // add versions view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'versions',\n }),\n )\n } else if (segmentFour === 'preview') {\n // add livePreview view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'livePreview',\n }),\n )\n } else if (segmentFour === 'api') {\n // add api view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'api',\n }),\n )\n }\n } else if (segmentThree) {\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedCollection.admin?.components?.views.edit,\n viewKey: 'default',\n }),\n )\n }\n }\n }\n } else if (isGlobal && matchedGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n // Adds view actions to the current global view\n if (matchedGlobal.admin?.components?.views?.edit) {\n if ('root' in matchedGlobal.admin.components.views.edit) {\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin.components?.views?.edit,\n viewKey: 'root',\n }),\n )\n } else {\n if (segmentFour) {\n if (segmentThree === 'versions') {\n // add version view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'version',\n }),\n )\n }\n } else if (segmentThree) {\n if (segmentThree === 'versions') {\n // add versions view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'versions',\n }),\n )\n } else if (segmentThree === 'preview') {\n // add livePreview view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'livePreview',\n }),\n )\n } else if (segmentThree === 'api') {\n // add api view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'api',\n }),\n )\n }\n }\n }\n }\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n serverProps.viewActions.reverse()\n\n return {\n DefaultView: ViewToRender,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAkIA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAwIA,CAAA"}
@@ -101,6 +101,7 @@ export const RootPage = async ({
101
101
  serverProps: {
102
102
  ...serverProps,
103
103
  clientConfig,
104
+ docID: initPageResult?.docID,
104
105
  i18n: initPageResult?.req.i18n,
105
106
  importMap,
106
107
  initPageResult,
@@ -116,6 +117,9 @@ export const RootPage = async ({
116
117
  className: templateClassName,
117
118
  children: RenderedView
118
119
  }), templateType === 'default' && /*#__PURE__*/_jsx(DefaultTemplate, {
120
+ collectionSlug: initPageResult?.collectionConfig?.slug,
121
+ docID: initPageResult?.docID,
122
+ globalSlug: initPageResult?.globalConfig?.slug,
119
123
  i18n: initPageResult?.req.i18n,
120
124
  locale: initPageResult?.locale,
121
125
  params: params,
@@ -124,6 +128,7 @@ export const RootPage = async ({
124
128
  searchParams: searchParams,
125
129
  user: initPageResult?.req.user,
126
130
  viewActions: serverProps.viewActions,
131
+ viewType: serverProps.viewType,
127
132
  visibleEntities: {
128
133
  // The reason we are not passing in initPageResult.visibleEntities directly is due to a "Cannot assign to read only property of object '#<Object>" error introduced in React 19
129
134
  // which this caused as soon as initPageResult.visibleEntities is passed in
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","formatAdminURL","getClientConfig","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","initPageOptions","serverProps","templateClassName","templateType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","clientProps","Fallback","_jsxs","_jsx","className","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { ImportMap, SanitizedConfig } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n const currentRoute = formatAdminURL({\n adminRoute,\n path: `${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const { DefaultView, initPageOptions, serverProps, templateClassName, templateType } =\n getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: { clientConfig },\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n },\n })\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","formatAdminURL","getClientConfig","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","initPageOptions","serverProps","templateClassName","templateType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","clientProps","Fallback","docID","_jsxs","_jsx","className","collectionSlug","globalSlug","globalConfig","locale","permissions","viewActions","viewType","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { ImportMap, SanitizedConfig } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: `${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const { DefaultView, initPageOptions, serverProps, templateClassName, templateType } =\n getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: { clientConfig },\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n },\n })\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={serverProps.viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.15.1",
3
+ "version": "3.15.2-canary.64ffcd8",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,9 +79,9 @@
79
79
  "sass": "1.77.4",
80
80
  "sonner": "^1.7.0",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/graphql": "3.15.1",
83
- "@payloadcms/translations": "3.15.1",
84
- "@payloadcms/ui": "3.15.1"
82
+ "@payloadcms/graphql": "3.15.2-canary.64ffcd8",
83
+ "@payloadcms/translations": "3.15.2-canary.64ffcd8",
84
+ "@payloadcms/ui": "3.15.2-canary.64ffcd8"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.25.9",
@@ -99,13 +99,13 @@
99
99
  "esbuild-sass-plugin": "3.3.1",
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124",
101
101
  "swc-plugin-transform-remove-imports": "2.0.0",
102
- "payload": "3.15.1",
103
- "@payloadcms/eslint-config": "3.9.0"
102
+ "@payloadcms/eslint-config": "3.9.0",
103
+ "payload": "3.15.2-canary.64ffcd8"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.0.0",
108
- "payload": "3.15.1"
108
+ "payload": "3.15.2-canary.64ffcd8"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"
@@ -1,12 +0,0 @@
1
- import type { Payload } from 'payload';
2
- type GetRequestLocalesArgs = {
3
- data?: Record<string, any>;
4
- localization: Exclude<Payload['config']['localization'], false>;
5
- searchParams?: URLSearchParams;
6
- };
7
- export declare function getRequestLocales({ data, localization, searchParams }: GetRequestLocalesArgs): {
8
- fallbackLocale: string;
9
- locale: string;
10
- };
11
- export {};
12
- //# sourceMappingURL=getRequestLocales.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRequestLocales.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,KAAK,qBAAqB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAA;IAC/D,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B,CAAA;AACD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,qBAAqB,GAAG;IAC9F,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf,CAgCA"}
@@ -1,35 +0,0 @@
1
- import { sanitizeFallbackLocale } from 'payload';
2
- export function getRequestLocales({
3
- data,
4
- localization,
5
- searchParams
6
- }) {
7
- let locale = searchParams.get('locale');
8
- let fallbackLocale = searchParams.get('fallback-locale') || searchParams.get('fallbackLocale');
9
- if (data) {
10
- if (data?.locale) {
11
- locale = data.locale;
12
- }
13
- if (data?.['fallback-locale']) {
14
- fallbackLocale = data['fallback-locale'];
15
- }
16
- if (data?.['fallbackLocale']) {
17
- fallbackLocale = data['fallbackLocale'];
18
- }
19
- }
20
- fallbackLocale = sanitizeFallbackLocale({
21
- fallbackLocale,
22
- locale,
23
- localization
24
- });
25
- if (locale === '*') {
26
- locale = 'all';
27
- } else if (!localization.localeCodes.includes(locale)) {
28
- locale = localization.defaultLocale;
29
- }
30
- return {
31
- fallbackLocale,
32
- locale
33
- };
34
- }
35
- //# sourceMappingURL=getRequestLocales.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRequestLocales.js","names":["sanitizeFallbackLocale","getRequestLocales","data","localization","searchParams","locale","get","fallbackLocale","localeCodes","includes","defaultLocale"],"sources":["../../src/utilities/getRequestLocales.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport { sanitizeFallbackLocale } from 'payload'\n\ntype GetRequestLocalesArgs = {\n data?: Record<string, any>\n localization: Exclude<Payload['config']['localization'], false>\n searchParams?: URLSearchParams\n}\nexport function getRequestLocales({ data, localization, searchParams }: GetRequestLocalesArgs): {\n fallbackLocale: string\n locale: string\n} {\n let locale = searchParams.get('locale')\n let fallbackLocale = searchParams.get('fallback-locale') || searchParams.get('fallbackLocale')\n\n if (data) {\n if (data?.locale) {\n locale = data.locale\n }\n if (data?.['fallback-locale']) {\n fallbackLocale = data['fallback-locale']\n }\n if (data?.['fallbackLocale']) {\n fallbackLocale = data['fallbackLocale']\n }\n }\n\n fallbackLocale = sanitizeFallbackLocale({\n fallbackLocale,\n locale,\n localization,\n })\n\n if (locale === '*') {\n locale = 'all'\n } else if (!localization.localeCodes.includes(locale)) {\n locale = localization.defaultLocale\n }\n\n return {\n fallbackLocale,\n locale,\n }\n}\n"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ;AAOvC,OAAO,SAASC,kBAAkB;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAY,CAAyB;EAI3F,IAAIC,MAAA,GAASD,YAAA,CAAaE,GAAG,CAAC;EAC9B,IAAIC,cAAA,GAAiBH,YAAA,CAAaE,GAAG,CAAC,sBAAsBF,YAAA,CAAaE,GAAG,CAAC;EAE7E,IAAIJ,IAAA,EAAM;IACR,IAAIA,IAAA,EAAMG,MAAA,EAAQ;MAChBA,MAAA,GAASH,IAAA,CAAKG,MAAM;IACtB;IACA,IAAIH,IAAA,GAAO,kBAAkB,EAAE;MAC7BK,cAAA,GAAiBL,IAAI,CAAC,kBAAkB;IAC1C;IACA,IAAIA,IAAA,GAAO,iBAAiB,EAAE;MAC5BK,cAAA,GAAiBL,IAAI,CAAC,iBAAiB;IACzC;EACF;EAEAK,cAAA,GAAiBP,sBAAA,CAAuB;IACtCO,cAAA;IACAF,MAAA;IACAF;EACF;EAEA,IAAIE,MAAA,KAAW,KAAK;IAClBA,MAAA,GAAS;EACX,OAAO,IAAI,CAACF,YAAA,CAAaK,WAAW,CAACC,QAAQ,CAACJ,MAAA,GAAS;IACrDA,MAAA,GAASF,YAAA,CAAaO,aAAa;EACrC;EAEA,OAAO;IACLH,cAAA;IACAF;EACF;AACF","ignoreList":[]}