@payloadcms/next 3.25.0-canary.6d6bbd2 → 3.25.0-canary.90ff83f

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAMhG,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,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,+BAsHA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAOhG,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,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,+BA0HA,CAAA"}
@@ -2,7 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { rtlLanguages } from '@payloadcms/translations';
3
3
  import { ProgressBar, RootProvider } from '@payloadcms/ui';
4
4
  import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
5
- import { cookies as nextCookies } from 'next/headers.js';
5
+ import { headers as getHeaders, cookies as nextCookies } from 'next/headers.js';
6
+ import { getPayload, getRequestLanguage, parseCookies } from 'payload';
6
7
  import React from 'react';
7
8
  import { getNavPrefs } from '../../elements/Nav/getNavPrefs.js';
8
9
  import { getRequestTheme } from '../../utilities/getRequestTheme.js';
@@ -20,27 +21,27 @@ export const RootLayout = async ({
20
21
  serverFunction
21
22
  }) => {
22
23
  checkDependencies();
23
- const {
24
+ const config = await configPromise;
25
+ const headers = await getHeaders();
26
+ const cookies = parseCookies(headers);
27
+ const languageCode = getRequestLanguage({
28
+ config,
24
29
  cookies,
25
- headers,
26
- languageCode,
27
- permissions,
28
- req,
29
- req: {
30
- payload: {
31
- config
32
- }
33
- }
34
- } = await initReq({
35
- configPromise,
36
- importMap,
37
- key: 'RootLayout'
30
+ headers
38
31
  });
39
32
  const theme = getRequestTheme({
40
33
  config,
41
34
  cookies,
42
35
  headers
43
36
  });
37
+ const payload = await getPayload({
38
+ config,
39
+ importMap
40
+ });
41
+ const {
42
+ permissions,
43
+ req
44
+ } = await initReq(config);
44
45
  const dir = rtlLanguages.includes(languageCode) ? 'RTL' : 'LTR';
45
46
  const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
46
47
  if (Object.keys(config.i18n.supportedLanguages).includes(language)) {
@@ -104,11 +105,11 @@ export const RootLayout = async ({
104
105
  translations: req.i18n.translations,
105
106
  user: req.user,
106
107
  children: [/*#__PURE__*/_jsx(ProgressBar, {}), Array.isArray(config.admin?.components?.providers) && config.admin?.components?.providers.length > 0 ? /*#__PURE__*/_jsx(NestProviders, {
107
- importMap: req.payload.importMap,
108
+ importMap: payload.importMap,
108
109
  providers: config.admin?.components?.providers,
109
110
  serverProps: {
110
111
  i18n: req.i18n,
111
- payload: req.payload,
112
+ payload,
112
113
  permissions,
113
114
  user: req.user
114
115
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["rtlLanguages","ProgressBar","RootProvider","getClientConfig","cookies","nextCookies","React","getNavPrefs","getRequestTheme","initReq","checkDependencies","NestProviders","metadata","description","title","RootLayout","children","config","configPromise","importMap","serverFunction","headers","languageCode","permissions","req","payload","key","theme","dir","includes","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","navPrefs","user","id","collection","clientConfig","localization","filterAvailableLocales","locales","map","toString","rest","localeCodes","code","_jsxs","suppressHydrationWarning","admin","_jsx","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","locale","Array","isArray","components","providers","length","serverProps"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, LanguageOptions, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { ProgressBar, RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { cookies as nextCookies } from 'next/headers.js'\nimport React from 'react'\n\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.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 {\n cookies,\n headers,\n languageCode,\n permissions,\n req,\n req: {\n payload: { config },\n },\n } = await initReq({ configPromise, importMap, key: 'RootLayout' })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions: LanguageOptions = Object.entries(\n config.i18n.supportedLanguages || {},\n ).reduce((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 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(req.payload, req.user?.id, req.user?.collection)\n\n const clientConfig = getClientConfig({\n config,\n i18n: req.i18n,\n importMap,\n })\n\n if (\n clientConfig.localization &&\n config.localization &&\n typeof config.localization.filterAvailableLocales === 'function'\n ) {\n clientConfig.localization.locales = (\n await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n ).map(({ toString, ...rest }) => rest)\n clientConfig.localization.localeCodes = config.localization.locales.map(({ code }) => code)\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={req.i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n locale={req.locale}\n permissions={permissions}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={req.i18n.translations}\n user={req.user}\n >\n <ProgressBar />\n {Array.isArray(config.admin?.components?.providers) &&\n config.admin?.components?.providers.length > 0 ? (\n <NestProviders\n importMap={req.payload.importMap}\n providers={config.admin?.components?.providers}\n serverProps={{\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n user: req.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","ProgressBar","RootProvider","getClientConfig","headers","getHeaders","cookies","nextCookies","getPayload","getRequestLanguage","parseCookies","React","getNavPrefs","getRequestTheme","initReq","checkDependencies","NestProviders","metadata","description","title","RootLayout","children","config","configPromise","importMap","serverFunction","languageCode","theme","payload","permissions","req","dir","includes","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","navPrefs","user","id","collection","clientConfig","localization","filterAvailableLocales","locales","map","toString","rest","localeCodes","code","_jsxs","suppressHydrationWarning","admin","_jsx","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","locale","Array","isArray","components","providers","length","serverProps"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, LanguageOptions, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { ProgressBar, RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { getPayload, getRequestLanguage, parseCookies } from 'payload'\nimport React from 'react'\n\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.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 { permissions, req } = await initReq(config)\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions: LanguageOptions = Object.entries(\n config.i18n.supportedLanguages || {},\n ).reduce((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 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(req.payload, req.user?.id, req.user?.collection)\n\n const clientConfig = getClientConfig({\n config,\n i18n: req.i18n,\n importMap,\n })\n\n if (\n clientConfig.localization &&\n config.localization &&\n typeof config.localization.filterAvailableLocales === 'function'\n ) {\n clientConfig.localization.locales = (\n await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n ).map(({ toString, ...rest }) => rest)\n clientConfig.localization.localeCodes = config.localization.locales.map(({ code }) => code)\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={req.i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n locale={req.locale}\n permissions={permissions}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={req.i18n.translations}\n user={req.user}\n >\n <ProgressBar />\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: req.i18n,\n payload,\n permissions,\n user: req.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 +1 @@
1
- {"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAYpE,eAAO,MAAM,qBAAqB,EAAE,qBAgCnC,CAAA"}
1
+ {"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAYpE,eAAO,MAAM,qBAAqB,EAAE,qBA4BnC,CAAA"}
@@ -15,11 +15,7 @@ export const handleServerFunctions = async args => {
15
15
  } = args;
16
16
  const {
17
17
  req
18
- } = await initReq({
19
- configPromise,
20
- importMap,
21
- key: 'RootLayout'
22
- });
18
+ } = await initReq(configPromise);
23
19
  const augmentedArgs = {
24
20
  ...fnArgs,
25
21
  importMap,
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunctions.js","names":["copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","req","key","augmentedArgs","serverFunctions","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const { name: fnKey, args: fnArgs, config: configPromise, importMap } = args\n\n const { req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: Parameters<ServerFunction>[0] = {\n ...fnArgs,\n importMap,\n req,\n }\n\n const serverFunctions = {\n 'copy-data-from-locale': copyDataFromLocaleHandler as any as ServerFunction,\n 'form-state': buildFormStateHandler as any as ServerFunction,\n 'render-document': renderDocumentHandler as any as ServerFunction,\n 'render-document-slots': renderDocumentSlotsHandler as any as ServerFunction,\n 'render-list': renderListHandler as any as ServerFunction,\n 'schedule-publish': schedulePublishHandler as any as ServerFunction,\n 'table-state': buildTableStateHandler as any as ServerFunction,\n }\n\n const fn = serverFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AAExB,OAAO,MAAMC,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IAAEC,IAAA,EAAMC,KAAK;IAAEF,IAAA,EAAMG,MAAM;IAAEC,MAAA,EAAQC,aAAa;IAAEC;EAAS,CAAE,GAAGN,IAAA;EAExE,MAAM;IAAEO;EAAG,CAAE,GAAG,MAAMT,OAAA,CAAQ;IAC5BO,aAAA;IACAC,SAAA;IACAE,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA+C;IACnD,GAAGN,MAAM;IACTG,SAAA;IACAC;EACF;EAEA,MAAMG,eAAA,GAAkB;IACtB,yBAAyBnB,yBAAA;IACzB,cAAcC,qBAAA;IACd,mBAAmBG,qBAAA;IACnB,yBAAyBC,0BAAA;IACzB,eAAeC,iBAAA;IACf,oBAAoBH,sBAAA;IACpB,eAAeD;EACjB;EAEA,MAAMkB,EAAA,GAAKD,eAAe,CAACR,KAAA,CAAM;EAEjC,IAAI,CAACS,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BV,KAAA,EAAO;EACrD;EAEA,OAAOS,EAAA,CAAGF,aAAA;AACZ","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunctions.js","names":["copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","req","augmentedArgs","serverFunctions","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const { name: fnKey, args: fnArgs, config: configPromise, importMap } = args\n\n const { req } = await initReq(configPromise)\n\n const augmentedArgs: Parameters<ServerFunction>[0] = {\n ...fnArgs,\n importMap,\n req,\n }\n\n const serverFunctions = {\n 'copy-data-from-locale': copyDataFromLocaleHandler as any as ServerFunction,\n 'form-state': buildFormStateHandler as any as ServerFunction,\n 'render-document': renderDocumentHandler as any as ServerFunction,\n 'render-document-slots': renderDocumentSlotsHandler as any as ServerFunction,\n 'render-list': renderListHandler as any as ServerFunction,\n 'schedule-publish': schedulePublishHandler as any as ServerFunction,\n 'table-state': buildTableStateHandler as any as ServerFunction,\n }\n\n const fn = serverFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AAExB,OAAO,MAAMC,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IAAEC,IAAA,EAAMC,KAAK;IAAEF,IAAA,EAAMG,MAAM;IAAEC,MAAA,EAAQC,aAAa;IAAEC;EAAS,CAAE,GAAGN,IAAA;EAExE,MAAM;IAAEO;EAAG,CAAE,GAAG,MAAMT,OAAA,CAAQO,aAAA;EAE9B,MAAMG,aAAA,GAA+C;IACnD,GAAGL,MAAM;IACTG,SAAA;IACAC;EACF;EAEA,MAAME,eAAA,GAAkB;IACtB,yBAAyBlB,yBAAA;IACzB,cAAcC,qBAAA;IACd,mBAAmBG,qBAAA;IACnB,yBAAyBC,0BAAA;IACzB,eAAeC,iBAAA;IACf,oBAAoBH,sBAAA;IACpB,eAAeD;EACjB;EAEA,MAAMiB,EAAA,GAAKD,eAAe,CAACP,KAAA,CAAM;EAEjC,IAAI,CAACQ,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BT,KAAA,EAAO;EACrD;EAEA,OAAOQ,EAAA,CAAGF,aAAA;AACZ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import type { InitPageResult } from 'payload';
2
2
  import type { Args } from './types.js';
3
- export declare const initPage: ({ config: configPromise, importMap, route, searchParams, useLayoutReq, }: Args) => Promise<InitPageResult>;
3
+ export declare const initPage: ({ config: configPromise, importMap, route, searchParams, }: Args) => Promise<InitPageResult>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,6EAMlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAkG/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA4F/B,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { headers as getHeaders } from 'next/headers.js';
1
2
  import { notFound } from 'next/navigation.js';
2
- import { isEntityHidden } from 'payload';
3
+ import { getPayload, isEntityHidden, parseCookies } from 'payload';
3
4
  import * as qs from 'qs-esm';
4
5
  import { initReq } from '../initReq.js';
5
6
  import { getRouteInfo } from './handleAdminPage.js';
@@ -10,35 +11,16 @@ export const initPage = async ({
10
11
  config: configPromise,
11
12
  importMap,
12
13
  route,
13
- searchParams,
14
- useLayoutReq
14
+ searchParams
15
15
  }) => {
16
+ const headers = await getHeaders();
17
+ const payload = await getPayload({
18
+ config: configPromise,
19
+ importMap
20
+ });
16
21
  const queryString = `${qs.stringify(searchParams ?? {}, {
17
22
  addQueryPrefix: true
18
23
  })}`;
19
- const {
20
- cookies,
21
- locale,
22
- permissions,
23
- req,
24
- req: {
25
- payload
26
- }
27
- } = await initReq({
28
- configPromise,
29
- importMap,
30
- key: useLayoutReq ? 'RootLayout' : 'initPage',
31
- overrides: {
32
- fallbackLocale: false,
33
- req: {
34
- query: qs.parse(queryString, {
35
- depth: 10,
36
- ignoreQueryPrefix: true
37
- })
38
- }
39
- },
40
- urlSuffix: `${route}${searchParams ? queryString : ''}`
41
- });
42
24
  const {
43
25
  collections,
44
26
  globals,
@@ -46,6 +28,22 @@ export const initPage = async ({
46
28
  admin: adminRoute
47
29
  }
48
30
  } = payload.config;
31
+ const cookies = parseCookies(headers);
32
+ const {
33
+ locale,
34
+ permissions,
35
+ req
36
+ } = await initReq(payload.config, {
37
+ fallbackLocale: false,
38
+ req: {
39
+ headers,
40
+ query: qs.parse(queryString, {
41
+ depth: 10,
42
+ ignoreQueryPrefix: true
43
+ }),
44
+ url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`
45
+ }
46
+ });
49
47
  const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
50
48
  if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
51
49
  acc.push({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["notFound","isEntityHidden","qs","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","useLayoutReq","queryString","stringify","addQueryPrefix","cookies","locale","permissions","req","payload","key","overrides","fallbackLocale","query","parse","depth","ignoreQueryPrefix","urlSuffix","collections","globals","routes","admin","adminRoute","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","visibleEntities","map","slug","hidden","user","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, VisibleEntities } from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { 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 useLayoutReq,\n}: Args): Promise<InitPageResult> => {\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n cookies,\n locale,\n permissions,\n req,\n req: { payload },\n } = await initReq({\n configPromise,\n importMap,\n key: useLayoutReq ? 'RootLayout' : 'initPage',\n overrides: {\n fallbackLocale: false,\n req: {\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n },\n },\n urlSuffix: `${route}${searchParams ? queryString : ''}`,\n })\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = payload.config\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 const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\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: req.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: req.i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["headers","getHeaders","notFound","getPayload","isEntityHidden","parseCookies","qs","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","routes","admin","adminRoute","cookies","locale","permissions","req","fallbackLocale","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","visibleEntities","map","slug","hidden","user","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, VisibleEntities } from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { 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 routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { locale, permissions, req } = await initReq(payload.config, {\n fallbackLocale: false,\n req: {\n headers,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n },\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 const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\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: req.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: req.i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"AAEA,SAASA,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,UAAU,EAAEC,cAAc,EAAEC,YAAY,QAAQ;AACzD,YAAYC,EAAA,MAAQ;AAIpB,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,MAAMjB,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMiB,OAAA,GAAU,MAAMf,UAAA,CAAW;IAAEU,MAAA,EAAQC,aAAA;IAAeC;EAAU;EACpE,MAAMI,WAAA,GAAc,GAAGb,EAAA,CAAGc,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,GAAUtB,YAAA,CAAaL,OAAA;EAE7B,MAAM;IAAE4B,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMvB,OAAA,CAAQW,OAAA,CAAQL,MAAM,EAAE;IACjEkB,cAAA,EAAgB;IAChBD,GAAA,EAAK;MACH9B,OAAA;MACAgC,KAAA,EAAO1B,EAAA,CAAG2B,KAAK,CAACd,WAAA,EAAa;QAC3Be,KAAA,EAAO;QACPC,iBAAA,EAAmB;MACrB;MACAC,GAAA,EAAK,GAAGlB,OAAA,CAAQL,MAAM,CAACwB,SAAS,GAAGrB,KAAA,GAAQC,YAAA,GAAeE,WAAA,GAAc;IAC1E;EACF;EAEA,MAAMmB,eAAA,GAAkBC,MAAA,CAAOC,OAAO,CAACtB,OAAA,CAAQL,MAAM,CAAC4B,IAAI,CAACC,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACzF,CAACC,GAAA,EAAK,CAACC,QAAA,EAAUC,cAAA,CAAe;IAC9B,IAAIP,MAAA,CAAOQ,IAAI,CAAC7B,OAAA,CAAQL,MAAM,CAAC4B,IAAI,CAACC,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;EAGJ,MAAMW,eAAA,GAAmC;IACvCjC,WAAA,EAAaA,WAAA,CACVkC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEhC,KAAA,EAAO;QAAEiC;MAAM;IAAE,CAAE,KAC/B,CAACtD,cAAA,CAAe;MAAEsD,MAAA;MAAQC,IAAA,EAAM7B,GAAA,CAAI6B;IAAK,KAAKF,IAAA,GAAO,MAEtDG,MAAM,CAACC,OAAA;IACVtC,OAAA,EAASA,OAAA,CACNiC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEhC,KAAA,EAAO;QAAEiC;MAAM;IAAE,CAAE,KAC/B,CAACtD,cAAA,CAAe;MAAEsD,MAAA;MAAQC,IAAA,EAAM7B,GAAA,CAAI6B;IAAK,KAAKF,IAAA,GAAO,MAEtDG,MAAM,CAACC,OAAA;EACZ;EAEA,IAAIC,UAAA,GAAa;EAEjB,IACE,CAACjC,WAAA,CAAYkC,cAAc,IAC3B,CAACpD,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;IACA8C,UAAA,GAAarD,kBAAA,CAAmB;MAC9BI,MAAA,EAAQK,OAAA,CAAQL,MAAM;MACtBG,KAAA;MACAC,YAAA;MACA0C,IAAA,EAAM7B,GAAA,CAAI6B;IACZ;EACF;EAEA,MAAM;IAAEK,gBAAgB;IAAEC,cAAc;IAAEC,KAAK;IAAEC,YAAY;IAAEC;EAAU,CAAE,GAAG5D,YAAA,CAAa;IACzFkB,UAAA;IACAb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IACtBwD,aAAA,EAAenD,OAAA,CAAQoD,EAAE,CAACD,aAAa;IACvCnD,OAAA;IACAF;EACF;EAEA,IAAIiD,cAAC,IAAkB,CAACD,gBAAA,IAAsBI,UAAA,IAAc,CAACD,YAAA,EAAe;IAC1E,OAAOjE,QAAA;EACT;EAEA,OAAO;IACL8D,gBAAA;IACArC,OAAA;IACAuC,KAAA;IACAC,YAAA;IACA7B,eAAA;IACAV,MAAA;IACAC,WAAA;IACAiC,UAAA;IACAhC,GAAA;IACAqB,YAAA,EAAcrB,GAAA,CAAIW,IAAI,CAACU,YAAY;IACnCI;EACF;AACF","ignoreList":[]}
@@ -21,16 +21,5 @@ export type Args = {
21
21
  searchParams: {
22
22
  [key: string]: string | string[] | undefined;
23
23
  };
24
- /**
25
- * If `useLayoutReq` is `true`, this page will use the cached `req` created by the root layout
26
- * instead of creating a new one.
27
- *
28
- * This is improves performance for pages that are able to share the same `req` as the root layout,
29
- * as permissions do not need to be re-calculated.
30
- *
31
- * If the page has unique query and url params that need to be part of the `req` object, or if you
32
- * need permissions calculation to respect those you should not use this property.
33
- */
34
- useLayoutReq?: boolean;
35
24
  };
36
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,SAAS,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9D;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,SAAS,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utilities/initPage/types.ts"],"sourcesContent":["import type { ImportMap, SanitizedConfig } from 'payload'\n\nexport type Args = {\n /**\n * Your sanitized Payload config.\n * If unresolved, this function will await the promise.\n */\n config: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n /**\n * If true, redirects unauthenticated users to the admin login page.\n * If a string is provided, the user will be redirected to that specific URL.\n */\n redirectUnauthenticatedUser?: boolean | string\n /**\n * The current route, i.e. `/admin/collections/posts`.\n */\n route: string\n /**\n * The search parameters of the current route provided to all pages in Next.js.\n */\n searchParams: { [key: string]: string | string[] | undefined }\n /**\n * If `useLayoutReq` is `true`, this page will use the cached `req` created by the root layout\n * instead of creating a new one.\n *\n * This is improves performance for pages that are able to share the same `req` as the root layout,\n * as permissions do not need to be re-calculated.\n *\n * If the page has unique query and url params that need to be part of the `req` object, or if you\n * need permissions calculation to respect those you should not use this property.\n */\n useLayoutReq?: boolean\n}\n"],"mappings":"AAEA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utilities/initPage/types.ts"],"sourcesContent":["import type { ImportMap, SanitizedConfig } from 'payload'\n\nexport type Args = {\n /**\n * Your sanitized Payload config.\n * If unresolved, this function will await the promise.\n */\n config: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n /**\n * If true, redirects unauthenticated users to the admin login page.\n * If a string is provided, the user will be redirected to that specific URL.\n */\n redirectUnauthenticatedUser?: boolean | string\n /**\n * The current route, i.e. `/admin/collections/posts`.\n */\n route: string\n /**\n * The search parameters of the current route provided to all pages in Next.js.\n */\n searchParams: { [key: string]: string | string[] | undefined }\n}\n"],"mappings":"AAEA","ignoreList":[]}
@@ -1,26 +1,10 @@
1
- import type { AcceptedLanguages } from '@payloadcms/translations';
2
- import type { ImportMap, Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload';
3
- import { headers as getHeaders } from 'next/headers.js';
1
+ import type { Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload';
4
2
  import { createLocalReq } from 'payload';
5
3
  type Result = {
6
- cookies: Map<string, string>;
7
- headers: Awaited<ReturnType<typeof getHeaders>>;
8
- languageCode: AcceptedLanguages;
9
4
  locale?: Locale;
10
5
  permissions: SanitizedPermissions;
11
6
  req: PayloadRequest;
12
7
  };
13
- /**
14
- * Initializes a full request object, including the `req` object and access control.
15
- * As access control and getting the request locale is dependent on the current URL and
16
- * query parameters, this function cannot be cached as often as the partial request object.
17
- */
18
- export declare const initReq: ({ configPromise, importMap, key, overrides, urlSuffix, }: {
19
- configPromise: Promise<SanitizedConfig> | SanitizedConfig;
20
- importMap: ImportMap;
21
- key: string;
22
- overrides?: Parameters<typeof createLocalReq>[0];
23
- urlSuffix?: string;
24
- }) => Promise<Result>;
8
+ export declare const initReq: (configPromise: Promise<SanitizedConfig> | SanitizedConfig, overrides?: Parameters<typeof createLocalReq>[0]) => Promise<Result>;
25
9
  export {};
26
10
  //# sourceMappingURL=initReq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,0BAA0B,CAAA;AACnF,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EAEN,cAAc,EACd,eAAe,EACf,oBAAoB,EAErB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EACL,cAAc,EAMf,MAAM,SAAS,CAAA;AAKhB,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;IAC/C,YAAY,EAAE,iBAAiB,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AA6GD;;;;GAIG;AACH,eAAO,MAAM,OAAO,6DAMjB;IACD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IACzD,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,CA6DjB,CAAA"}
1
+ {"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAI5F,OAAO,EACL,cAAc,EAMf,MAAM,SAAS,CAAA;AAKhB,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,OAAO,kBACH,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,cAC7C,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,KAC/C,OAAO,CAAC,MAAM,CA6Df,CAAA"}
@@ -3,147 +3,61 @@ import { headers as getHeaders } from 'next/headers.js';
3
3
  import { createLocalReq, executeAuthStrategies, getAccessResults, getPayload, getRequestLanguage, parseCookies } from 'payload';
4
4
  import { cache } from 'react';
5
5
  import { getRequestLocale } from './getRequestLocale.js';
6
- /**
7
- * Stable object to cache the partial request object across all pages
8
- */
9
- const getPartialInitReqContainer = cache(function () {
10
- return {
11
- reqResult: false
12
- };
13
- });
14
- /**
15
- * Stable object to cache the request object across all pages with the same key
16
- */
17
- const getInitReqContainer = cache(function (
18
- /**
19
- * The key is solely used to control caching behavior
20
- */
21
- key) {
22
- return {
23
- reqResult: false
24
- };
25
- });
26
- /**
27
- * Initializes a partial request object. This does not construct the `req` object and does
28
- * not run access control.
29
- *
30
- * The output of this function can be cached across all pages, which is why it is
31
- * separated from `initReq`.
32
- */
33
- const initPartialReq = async function ({
34
- configPromise,
35
- importMap
36
- }) {
37
- const partialReqContainer = getPartialInitReqContainer();
38
- if (partialReqContainer?.reqResult && 'then' in partialReqContainer.reqResult && typeof partialReqContainer?.reqResult?.then === 'function') {
39
- return await partialReqContainer.reqResult;
40
- }
41
- partialReqContainer.reqResult = (async () => {
42
- const config = await configPromise;
43
- const payload = await getPayload({
44
- config,
45
- importMap
46
- });
47
- const headers = await getHeaders();
48
- const cookies = parseCookies(headers);
49
- const languageCode = getRequestLanguage({
50
- config,
51
- cookies,
52
- headers
53
- });
54
- const i18n = await initI18n({
55
- config: config.i18n,
56
- context: 'client',
57
- language: languageCode
58
- });
59
- /**
60
- * Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results
61
- * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
62
- */
63
- const {
64
- responseHeaders,
65
- user
66
- } = await executeAuthStrategies({
67
- headers,
68
- payload
69
- });
70
- const result = {
71
- cookies,
72
- headers,
73
- i18n,
74
- languageCode,
75
- payload,
76
- responseHeaders,
77
- user
78
- };
79
- return result;
80
- })();
81
- partialReqContainer.reqResult = await partialReqContainer.reqResult;
82
- return partialReqContainer.reqResult;
83
- };
84
- /**
85
- * Initializes a full request object, including the `req` object and access control.
86
- * As access control and getting the request locale is dependent on the current URL and
87
- * query parameters, this function cannot be cached as often as the partial request object.
88
- */
89
- export const initReq = async function ({
90
- configPromise,
91
- importMap,
92
- key,
93
- overrides,
94
- urlSuffix
95
- }) {
96
- const {
6
+ export const initReq = cache(async function (configPromise, overrides) {
7
+ const config = await configPromise;
8
+ const payload = await getPayload({
9
+ config
10
+ });
11
+ const headers = await getHeaders();
12
+ const cookies = parseCookies(headers);
13
+ const languageCode = getRequestLanguage({
14
+ config,
97
15
  cookies,
98
- headers,
99
- i18n,
100
- languageCode,
101
- payload,
16
+ headers
17
+ });
18
+ const i18n = await initI18n({
19
+ config: config.i18n,
20
+ context: 'client',
21
+ language: languageCode
22
+ });
23
+ /**
24
+ * Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results
25
+ * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
26
+ */
27
+ const {
102
28
  responseHeaders,
103
29
  user
104
- } = await initPartialReq({
105
- configPromise,
106
- importMap
30
+ } = await executeAuthStrategies({
31
+ headers,
32
+ payload
107
33
  });
108
- const reqContainer = getInitReqContainer(key);
109
- if (reqContainer?.reqResult && 'then' in reqContainer.reqResult && typeof reqContainer?.reqResult?.then === 'function') {
110
- return await reqContainer.reqResult;
111
- }
112
- reqContainer.reqResult = (async () => {
113
- const {
114
- req: reqOverrides,
115
- ...optionsOverrides
116
- } = overrides || {};
117
- const req = await createLocalReq({
118
- req: {
119
- headers,
120
- host: headers.get('host'),
121
- i18n: i18n,
122
- responseHeaders,
123
- url: `${payload.config.serverURL}${urlSuffix || ''}`,
124
- user,
125
- ...(reqOverrides || {})
126
- },
127
- ...(optionsOverrides || {})
128
- }, payload);
129
- const locale = await getRequestLocale({
130
- req
131
- });
132
- req.locale = locale?.code;
133
- const permissions = await getAccessResults({
134
- req
135
- });
136
- const result = {
137
- cookies,
34
+ const {
35
+ req: reqOverrides,
36
+ ...optionsOverrides
37
+ } = overrides || {};
38
+ const req = await createLocalReq({
39
+ req: {
138
40
  headers,
139
- languageCode,
140
- locale,
141
- permissions,
142
- req
143
- };
144
- return result;
145
- })();
146
- reqContainer.reqResult = await reqContainer.reqResult;
147
- return reqContainer.reqResult;
148
- };
41
+ host: headers.get('host'),
42
+ i18n: i18n,
43
+ responseHeaders,
44
+ url: `${payload.config.serverURL}`,
45
+ user,
46
+ ...(reqOverrides || {})
47
+ },
48
+ ...(optionsOverrides || {})
49
+ }, payload);
50
+ const locale = await getRequestLocale({
51
+ req
52
+ });
53
+ req.locale = locale?.code;
54
+ const permissions = await getAccessResults({
55
+ req
56
+ });
57
+ return {
58
+ locale,
59
+ permissions,
60
+ req
61
+ };
62
+ });
149
63
  //# sourceMappingURL=initReq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","cache","getRequestLocale","getPartialInitReqContainer","reqResult","getInitReqContainer","key","initPartialReq","configPromise","importMap","partialReqContainer","then","config","payload","cookies","languageCode","i18n","context","language","responseHeaders","user","result","initReq","overrides","urlSuffix","reqContainer","req","reqOverrides","optionsOverrides","host","get","url","serverURL","locale","code","permissions"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { AcceptedLanguages, I18n, I18nClient } from '@payloadcms/translations'\nimport type {\n ImportMap,\n Locale,\n Payload,\n PayloadRequest,\n SanitizedConfig,\n SanitizedPermissions,\n User,\n} from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport { cache } from 'react'\n\nimport { getRequestLocale } from './getRequestLocale.js'\n\ntype Result = {\n cookies: Map<string, string>\n headers: Awaited<ReturnType<typeof getHeaders>>\n languageCode: AcceptedLanguages\n locale?: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}\n\ntype PartialResult = {\n cookies: Map<string, string>\n headers: Awaited<ReturnType<typeof getHeaders>>\n i18n: I18nClient\n languageCode: AcceptedLanguages\n payload: Payload\n responseHeaders: Headers\n user: null | User\n}\n\n/**\n * Stable object to cache the partial request object across all pages\n */\nconst getPartialInitReqContainer = cache(function (): {\n reqResult: false | PartialResult | Promise<PartialResult>\n} {\n return {\n reqResult: false,\n }\n})\n\n/**\n * Stable object to cache the request object across all pages with the same key\n */\nconst getInitReqContainer = cache(function (\n /**\n * The key is solely used to control caching behavior\n */\n key: string,\n): {\n reqResult: false | Promise<Result> | Result\n} {\n return {\n reqResult: false,\n }\n})\n\n/**\n * Initializes a partial request object. This does not construct the `req` object and does\n * not run access control.\n *\n * The output of this function can be cached across all pages, which is why it is\n * separated from `initReq`.\n */\nconst initPartialReq = async function ({\n configPromise,\n importMap,\n}: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n}): Promise<PartialResult> {\n const partialReqContainer = getPartialInitReqContainer()\n\n if (\n partialReqContainer?.reqResult &&\n 'then' in partialReqContainer.reqResult &&\n typeof partialReqContainer?.reqResult?.then === 'function'\n ) {\n return await partialReqContainer.reqResult\n }\n\n partialReqContainer.reqResult = (async () => {\n const config = await configPromise\n const payload = await getPayload({ config, importMap })\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 i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n /**\n * Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results\n * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object\n */\n const { responseHeaders, user } = await executeAuthStrategies({\n headers,\n payload,\n })\n\n const result: PartialResult = {\n cookies,\n headers,\n i18n,\n languageCode,\n payload,\n responseHeaders,\n user,\n }\n\n return result\n })()\n\n partialReqContainer.reqResult = await partialReqContainer.reqResult\n\n return partialReqContainer.reqResult\n}\n\n/**\n * Initializes a full request object, including the `req` object and access control.\n * As access control and getting the request locale is dependent on the current URL and\n * query parameters, this function cannot be cached as often as the partial request object.\n */\nexport const initReq = async function ({\n configPromise,\n importMap,\n key,\n overrides,\n urlSuffix,\n}: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n key: string\n overrides?: Parameters<typeof createLocalReq>[0]\n urlSuffix?: string\n}): Promise<Result> {\n const { cookies, headers, i18n, languageCode, payload, responseHeaders, user } =\n await initPartialReq({\n configPromise,\n importMap,\n })\n\n const reqContainer = getInitReqContainer(key)\n\n if (\n reqContainer?.reqResult &&\n 'then' in reqContainer.reqResult &&\n typeof reqContainer?.reqResult?.then === 'function'\n ) {\n return await reqContainer.reqResult\n }\n\n reqContainer.reqResult = (async () => {\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n url: `${payload.config.serverURL}${urlSuffix || ''}`,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n const result: Result = {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n }\n\n return result\n })()\n\n reqContainer.reqResult = await reqContainer.reqResult\n\n return reqContainer.reqResult\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","cache","getRequestLocale","initReq","configPromise","overrides","config","payload","cookies","languageCode","i18n","context","language","responseHeaders","user","req","reqOverrides","optionsOverrides","host","get","url","serverURL","locale","code","permissions"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type { Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport { cache } from 'react'\n\nimport { getRequestLocale } from './getRequestLocale.js'\n\ntype Result = {\n locale?: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}\n\nexport const initReq = cache(async function (\n configPromise: Promise<SanitizedConfig> | SanitizedConfig,\n overrides?: Parameters<typeof createLocalReq>[0],\n): Promise<Result> {\n const config = await configPromise\n const payload = await getPayload({ config })\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 i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n /**\n * Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results\n * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object\n */\n const { responseHeaders, user } = await executeAuthStrategies({\n headers,\n payload,\n })\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n url: `${payload.config.serverURL}`,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n return {\n locale,\n permissions,\n req,\n }\n})\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SACEC,cAAc,EACdC,qBAAqB,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,kBAAkB,EAClBC,YAAY,QACP;AACP,SAASC,KAAK,QAAQ;AAEtB,SAASC,gBAAgB,QAAQ;AAQjC,OAAO,MAAMC,OAAA,GAAUF,KAAA,CAAM,gBAC3BG,aAAyD,EACzDC,SAAgD;EAEhD,MAAMC,MAAA,GAAS,MAAMF,aAAA;EACrB,MAAMG,OAAA,GAAU,MAAMT,UAAA,CAAW;IAAEQ;EAAO;EAE1C,MAAMb,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMc,OAAA,GAAUR,YAAA,CAAaP,OAAA;EAE7B,MAAMgB,YAAA,GAAeV,kBAAA,CAAmB;IACtCO,MAAA;IACAE,OAAA;IACAf;EACF;EAEA,MAAMiB,IAAA,GAAmB,MAAMlB,QAAA,CAAS;IACtCc,MAAA,EAAQA,MAAA,CAAOI,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUH;EACZ;EAEA;;;;EAIA,MAAM;IAAEI,eAAe;IAAEC;EAAI,CAAE,GAAG,MAAMlB,qBAAA,CAAsB;IAC5DH,OAAA;IACAc;EACF;EAEA,MAAM;IAAEQ,GAAA,EAAKC,YAAY;IAAE,GAAGC;EAAA,CAAkB,GAAGZ,SAAA,IAAa,CAAC;EAEjE,MAAMU,GAAA,GAAM,MAAMpB,cAAA,CAChB;IACEoB,GAAA,EAAK;MACHtB,OAAA;MACAyB,IAAA,EAAMzB,OAAA,CAAQ0B,GAAG,CAAC;MAClBT,IAAA,EAAMA,IAAA;MACNG,eAAA;MACAO,GAAA,EAAK,GAAGb,OAAA,CAAQD,MAAM,CAACe,SAAS,EAAE;MAClCP,IAAA;MACA,IAAIE,YAAA,IAAgB,CAAC,CAAC;IACxB;IACA,IAAIC,gBAAA,IAAoB,CAAC,CAAC;EAC5B,GACAV,OAAA;EAGF,MAAMe,MAAA,GAAS,MAAMpB,gBAAA,CAAiB;IACpCa;EACF;EAEAA,GAAA,CAAIO,MAAM,GAAGA,MAAA,EAAQC,IAAA;EAErB,MAAMC,WAAA,GAAc,MAAM3B,gBAAA,CAAiB;IACzCkB;EACF;EAEA,OAAO;IACLO,MAAA;IACAE,WAAA;IACAT;EACF;AACF","ignoreList":[]}
@@ -118,7 +118,7 @@ export const renderListView = async args => {
118
118
  });
119
119
  const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap);
120
120
  const resolvedFilterOptions = await resolveAllFilterOptions({
121
- collectionConfig,
121
+ fields: collectionConfig.fields,
122
122
  req
123
123
  });
124
124
  const staticDescription = typeof collectionConfig.admin.description === 'function' ? collectionConfig.admin.description({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","resolveAllFilterOptions","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","listPreferences","key","value","limit","Number","undefined","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","data","find","collection","depth","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","docs","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n Where,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n const listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n sort: query?.sort as string,\n },\n })\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const limit = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n let where = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit,\n page,\n req,\n sort,\n })\n\n if (baseListFilter) {\n where = {\n and: [where, baseListFilter].filter(Boolean),\n }\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: where || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n collectionConfig,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","resolveAllFilterOptions","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","listPreferences","key","value","limit","Number","undefined","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","data","find","collection","depth","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","docs","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n Where,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n const listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n sort: query?.sort as string,\n },\n })\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const limit = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n let where = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit,\n page,\n req,\n sort,\n })\n\n if (baseListFilter) {\n where = {\n and: [where, baseListFilter].filter(Boolean),\n }\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: where || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":";AASA,SAASA,eAAe,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ;AAC9D,SAASC,cAAc,EAAEC,uBAAuB,QAAQ;AACxD,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,uBAAuB,QAAQ;AAExC,SAASC,oBAAoB,QAAQ;AAYrC,OAAO,MAAMC,cAAA,GAAiB,MAC5BC,IAAA;EAIA,MAAM;IACJC,YAAY;IACZC,eAAe;IACfC,iBAAiB;IACjBC,eAAe;IACfC,UAAU;IACVC,mBAAmB;IACnBC,cAAc;IACdC,wBAAwB;IACxBC,MAAM;IACNC,KAAA,EAAOC,aAAa;IACpBC;EAAY,CACb,GAAGZ,IAAA;EAEJ,MAAM;IACJa,gBAAgB;IAChBA,gBAAA,EAAkB;MAAEC,IAAA,EAAMC;IAAc,CAAE;IAC1CC,MAAA,EAAQC,UAAU;IAClBC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MACHC,IAAI;MACJJ,MAAM;MACNK,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBZ,KAAA,EAAOa,YAAY;MACnBC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGlB,cAAA;EAEJ,IAAI,CAACW,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAEY,IAAA,EAAM;IACrD,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAMlB,KAAA,GAAQC,aAAA,IAAiBY,YAAA;EAE/B,MAAMM,eAAA,GAAkB,MAAMxC,iBAAA,CAAmC;IAC/DyC,GAAA,EAAK,GAAGf,cAAA,OAAqB;IAC7BI,GAAA;IACAY,KAAA,EAAO;MACLC,KAAA,EAAOvC,QAAA,CAASiB,KAAA,EAAOsB,KAAA,IAASC,MAAA,CAAOvB,KAAA,CAAMsB,KAAK,IAAIE,SAAA;MACtDC,IAAA,EAAMzB,KAAA,EAAOyB;IACf;EACF;EAEA,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGhB,MAAA;EAEJ,IAAIT,gBAAA,EAAkB;IACpB,IAAI,CAACY,eAAA,CAAgBC,WAAW,CAACa,QAAQ,CAACxB,cAAA,KAAmB,CAACP,wBAAA,EAA0B;MACtF,MAAM,IAAIoB,KAAA,CAAM;IAClB;IAEA,MAAMY,IAAA,GAAO/C,QAAA,CAASiB,KAAA,EAAO8B,IAAA,IAAQP,MAAA,CAAOvB,KAAA,CAAM8B,IAAI,IAAI;IAE1D,MAAMR,KAAA,GAAQH,eAAA,EAAiBG,KAAA,IAASnB,gBAAA,CAAiBwB,KAAK,CAACI,UAAU,CAACC,YAAY;IAEtF,MAAMP,IAAA,GACJN,eAAA,EAAiBM,IAAA,KAChB,OAAOtB,gBAAA,CAAiB8B,WAAW,KAAK,WAAW9B,gBAAA,CAAiB8B,WAAW,GAAGT,SAAQ;IAE7F,IAAIU,KAAA,GAAQrD,uBAAA,CAAwB;MAClCsB,gBAAA;MACAgC,MAAA,EAAQ,OAAOnC,KAAA,EAAOmC,MAAA,KAAW,WAAWnC,KAAA,CAAMmC,MAAM,GAAGX,SAAA;MAC3DU,KAAA,EAAOlC,KAAC,EAAOkC,KAAA,IAAmBV;IACpC;IAEA,IAAI,OAAOrB,gBAAA,CAAiBwB,KAAK,EAAES,cAAA,KAAmB,YAAY;MAChE,MAAMA,cAAA,GAAiB,MAAMjC,gBAAA,CAAiBwB,KAAK,CAACS,cAAc,CAAC;QACjEd,KAAA;QACAQ,IAAA;QACArB,GAAA;QACAgB;MACF;MAEA,IAAIW,cAAA,EAAgB;QAClBF,KAAA,GAAQ;UACNG,GAAA,EAAK,CAACH,KAAA,EAAOE,cAAA,CAAe,CAACE,MAAM,CAACC,OAAA;QACtC;MACF;IACF;IAEA,MAAMC,IAAA,GAAO,MAAM7B,OAAA,CAAQ8B,IAAI,CAAC;MAC9BC,UAAA,EAAYrC,cAAA;MACZsC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,iBAAA,EAAmB;MACnBxB,KAAA;MACAhB,MAAA;MACAyC,cAAA,EAAgB;MAChBjB,IAAA;MACArB,GAAA;MACAgB,IAAA;MACAX,IAAA;MACAoB,KAAA,EAAOA,KAAA,IAAS,CAAC;IACnB;IAEA,MAAMc,sBAAA,GAAyBzD,YAAA,CAAayB,WAAW,CAACyB,IAAI,CAAEQ,CAAA,IAAMA,CAAA,CAAE7C,IAAI,KAAKC,cAAA;IAE/E,MAAM;MAAE6C,WAAW;MAAEC;IAAK,CAAE,GAAGzE,WAAA,CAAY;MACzCsE,sBAAA;MACA7C,gBAAA;MACAiD,iBAAA,EAAmBjC,eAAA,EAAiBkC,OAAA;MACpC7D,eAAA;MACA8D,IAAA,EAAMd,IAAA,CAAKc,IAAI;MACf3D,UAAA;MACAC,mBAAA;MACAc,IAAA,EAAMD,GAAA,CAAIC,IAAI;MACdC,OAAA;MACA4C,UAAA,EAAYpD,gBAAA,CAAiBwB,KAAK,CAAC4B;IACrC;IAEA,MAAMC,eAAA,GAAkB/E,aAAA,CAAc0B,gBAAA,CAAiBsD,MAAM,EAAEhD,GAAA,CAAIE,OAAO,CAAC+C,SAAS;IAEpF,MAAMC,qBAAA,GAAwB,MAAMxE,uBAAA,CAAwB;MAC1DsE,MAAA,EAAQtD,gBAAA,CAAiBsD,MAAM;MAC/BhD;IACF;IAEA,MAAMmD,iBAAA,GACJ,OAAOzD,gBAAA,CAAiBwB,KAAK,CAACkC,WAAW,KAAK,aAC1C1D,gBAAA,CAAiBwB,KAAK,CAACkC,WAAW,CAAC;MAAEC,CAAA,EAAGpD,IAAA,CAAKoD;IAAE,KAC/C3D,gBAAA,CAAiBwB,KAAK,CAACkC,WAAW;IAExC,MAAME,cAAA,GAAiBnF,cAAA,CAAe;MACpCgD,UAAA;MACAoC,IAAA,EAAM,gBAAgB3D,cAAA;IACxB;IAEA,MAAM4D,mBAAA,GAAsBzD,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAE6D,MAAA;IAExE,MAAMC,WAAA,GAAuC;MAC3ChE,gBAAA;MACAqC,IAAA;MACA9B,IAAA;MACAY,KAAA;MACAH,eAAA;MACAiD,oBAAA,EAAsBjE,gBAAA,CAAiBwB,KAAK,CAACyC,oBAAoB;MACjE9D,MAAA,EAAQC,UAAA;MACRR,MAAA;MACAY,OAAA;MACAH,WAAA;MACAN,YAAA;MACAY;IACF;IAEA,MAAMuD,aAAA,GAAgBnF,mBAAA,CAAoB;MACxCoF,WAAA,EAAa;QACXjE,cAAA;QACA4D,mBAAA;QACAF;MACF;MACA5D,gBAAA;MACA0D,WAAA,EAAaD,iBAAA;MACbjD,OAAA;MACAwD;IACF;IAEA,MAAMI,UAAA,GAAahC,OAAA,CAAQ5C,UAAA;IAE3B,OAAO;MACL6E,IAAA,eACEC,KAAA,CAACxF,QAAA;gCACCyF,IAAA,CAACpG,mBAAA;UAAoBkC,WAAA,EAAaA;yBAClCkE,IAAA,CAACnG,iBAAA;UACCiE,IAAA,EAAMA,IAAA;UACNR,YAAA,EAAcV,KAAA;UACdW,WAAA,EAAaR,IAAA;UACbkD,kBAAA,EAAoB,CAACJ,UAAA;oBAEpB/F,qBAAA,CAAsB;YACrB8F,WAAA,EAAa;cACX,GAAGD,aAAa;cAChBhE,cAAA;cACA6C,WAAA;cACAzD,iBAAA;cACAC,eAAA;cACAE,mBAAA;cACAqE,mBAAA;cACA9C,eAAA;cACA4C,cAAA;cACAP,eAAA;cACAG,qBAAA;cACAR;YACF;YACAyB,SAAA,EAAWzE,gBAAA,EAAkBwB,KAAA,EAAOkD,UAAA,EAAYC,KAAA,EAAOC,IAAA,EAAMH,SAAA;YAC7DI,QAAA,EAAU3G,eAAA;YACVqF,SAAA,EAAW/C,OAAA,CAAQ+C,SAAS;YAC5BS;UACF;;;IAIR;EACF;EAEA,MAAM,IAAIjD,KAAA,CAAM;AAClB;AAEA,OAAO,MAAM+D,QAAA,GAAyC,MAAO3F,IAAA;EAC3D,IAAI;IACF,MAAM;MAAEkF,IAAA,EAAMU;IAAY,CAAE,GAAG,MAAM7F,cAAA,CAAe;MAAE,GAAGC,IAAI;MAAEM,mBAAA,EAAqB;IAAK;IACzF,OAAOsF,YAAA;EACT,EAAE,OAAOC,KAAA,EAAO;IACd,IAAIA,KAAA,CAAMC,OAAO,KAAK,aAAa;MACjCtG,QAAA;IACF,OAAO;MACLuG,OAAA,CAAQF,KAAK,CAACA,KAAA,EAAO;MAAA;IACvB;EACF;AACF","ignoreList":[]}
@@ -1,6 +1,7 @@
1
- import type { CollectionConfig, PayloadRequest, ResolvedFilterOptions } from 'payload';
2
- export declare const resolveAllFilterOptions: ({ collectionConfig, req, }: {
3
- collectionConfig: CollectionConfig;
1
+ import type { Field, PayloadRequest, ResolvedFilterOptions } from 'payload';
2
+ export declare const resolveAllFilterOptions: ({ fields, req, result, }: {
3
+ fields: Field[];
4
4
  req: PayloadRequest;
5
+ result?: Map<string, ResolvedFilterOptions>;
5
6
  }) => Promise<Map<string, ResolvedFilterOptions>>;
6
7
  //# sourceMappingURL=resolveAllFilterOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveAllFilterOptions.d.ts","sourceRoot":"","sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAKtF,eAAO,MAAM,uBAAuB,+BAGjC;IACD,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAyB7C,CAAA"}
1
+ {"version":3,"file":"resolveAllFilterOptions.d.ts","sourceRoot":"","sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAK3E,eAAO,MAAM,uBAAuB,6BAIjC;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CAC5C,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA8C7C,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { resolveFilterOptions } from '@payloadcms/ui/rsc';
2
- import { fieldIsHiddenOrDisabled } from 'payload/shared';
2
+ import { fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared';
3
3
  export const resolveAllFilterOptions = async ({
4
- collectionConfig,
5
- req
4
+ fields,
5
+ req,
6
+ result
6
7
  }) => {
7
- const resolvedFilterOptions = new Map();
8
- await Promise.all(collectionConfig.fields.map(async field => {
8
+ const resolvedFilterOptions = !result ? new Map() : result;
9
+ await Promise.all(fields.map(async field => {
9
10
  if (fieldIsHiddenOrDisabled(field)) {
10
11
  return;
11
12
  }
@@ -21,6 +22,20 @@ export const resolveAllFilterOptions = async ({
21
22
  });
22
23
  resolvedFilterOptions.set(field.name, options);
23
24
  }
25
+ if (fieldHasSubFields(field)) {
26
+ await resolveAllFilterOptions({
27
+ fields: field.fields,
28
+ req,
29
+ result: resolvedFilterOptions
30
+ });
31
+ }
32
+ if (field.type === 'tabs') {
33
+ await Promise.all(field.tabs.map(tab => resolveAllFilterOptions({
34
+ fields: tab.fields,
35
+ req,
36
+ result: resolvedFilterOptions
37
+ })));
38
+ }
24
39
  }));
25
40
  return resolvedFilterOptions;
26
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolveAllFilterOptions.js","names":["resolveFilterOptions","fieldIsHiddenOrDisabled","resolveAllFilterOptions","collectionConfig","req","resolvedFilterOptions","Map","Promise","all","fields","map","field","filterOptions","options","id","undefined","blockData","data","relationTo","siblingData","user","set","name"],"sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"sourcesContent":["import type { CollectionConfig, PayloadRequest, ResolvedFilterOptions } from 'payload'\n\nimport { resolveFilterOptions } from '@payloadcms/ui/rsc'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nexport const resolveAllFilterOptions = async ({\n collectionConfig,\n req,\n}: {\n collectionConfig: CollectionConfig\n req: PayloadRequest\n}): Promise<Map<string, ResolvedFilterOptions>> => {\n const resolvedFilterOptions = new Map<string, ResolvedFilterOptions>()\n\n await Promise.all(\n collectionConfig.fields.map(async (field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return\n }\n\n if ('name' in field && 'filterOptions' in field && field.filterOptions) {\n const options = await resolveFilterOptions(field.filterOptions, {\n id: undefined,\n blockData: undefined,\n data: {}, // use empty object to prevent breaking queries when accessing properties of data\n relationTo: field.relationTo,\n req,\n siblingData: {}, // use empty object to prevent breaking queries when accessing properties of data\n user: req.user,\n })\n resolvedFilterOptions.set(field.name, options)\n }\n }),\n )\n\n return resolvedFilterOptions\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,uBAAuB,QAAQ;AAExC,OAAO,MAAMC,uBAAA,GAA0B,MAAAA,CAAO;EAC5CC,gBAAgB;EAChBC;AAAG,CAIJ;EACC,MAAMC,qBAAA,GAAwB,IAAIC,GAAA;EAElC,MAAMC,OAAA,CAAQC,GAAG,CACfL,gBAAA,CAAiBM,MAAM,CAACC,GAAG,CAAC,MAAOC,KAAA;IACjC,IAAIV,uBAAA,CAAwBU,KAAA,GAAQ;MAClC;IACF;IAEA,IAAI,UAAUA,KAAA,IAAS,mBAAmBA,KAAA,IAASA,KAAA,CAAMC,aAAa,EAAE;MACtE,MAAMC,OAAA,GAAU,MAAMb,oBAAA,CAAqBW,KAAA,CAAMC,aAAa,EAAE;QAC9DE,EAAA,EAAIC,SAAA;QACJC,SAAA,EAAWD,SAAA;QACXE,IAAA,EAAM,CAAC;QACPC,UAAA,EAAYP,KAAA,CAAMO,UAAU;QAC5Bd,GAAA;QACAe,WAAA,EAAa,CAAC;QACdC,IAAA,EAAMhB,GAAA,CAAIgB;MACZ;MACAf,qBAAA,CAAsBgB,GAAG,CAACV,KAAA,CAAMW,IAAI,EAAET,OAAA;IACxC;EACF;EAGF,OAAOR,qBAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"resolveAllFilterOptions.js","names":["resolveFilterOptions","fieldHasSubFields","fieldIsHiddenOrDisabled","resolveAllFilterOptions","fields","req","result","resolvedFilterOptions","Map","Promise","all","map","field","filterOptions","options","id","undefined","blockData","data","relationTo","siblingData","user","set","name","type","tabs","tab"],"sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"sourcesContent":["import type { Field, PayloadRequest, ResolvedFilterOptions } from 'payload'\n\nimport { resolveFilterOptions } from '@payloadcms/ui/rsc'\nimport { fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\n\nexport const resolveAllFilterOptions = async ({\n fields,\n req,\n result,\n}: {\n fields: Field[]\n req: PayloadRequest\n result?: Map<string, ResolvedFilterOptions>\n}): Promise<Map<string, ResolvedFilterOptions>> => {\n const resolvedFilterOptions = !result ? new Map<string, ResolvedFilterOptions>() : result\n\n await Promise.all(\n fields.map(async (field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return\n }\n\n if ('name' in field && 'filterOptions' in field && field.filterOptions) {\n const options = await resolveFilterOptions(field.filterOptions, {\n id: undefined,\n blockData: undefined,\n data: {}, // use empty object to prevent breaking queries when accessing properties of data\n relationTo: field.relationTo,\n req,\n siblingData: {}, // use empty object to prevent breaking queries when accessing properties of data\n user: req.user,\n })\n\n resolvedFilterOptions.set(field.name, options)\n }\n\n if (fieldHasSubFields(field)) {\n await resolveAllFilterOptions({\n fields: field.fields,\n req,\n result: resolvedFilterOptions,\n })\n }\n\n if (field.type === 'tabs') {\n await Promise.all(\n field.tabs.map((tab) =>\n resolveAllFilterOptions({\n fields: tab.fields,\n req,\n result: resolvedFilterOptions,\n }),\n ),\n )\n }\n }),\n )\n\n return resolvedFilterOptions\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,iBAAiB,EAAEC,uBAAuB,QAAQ;AAE3D,OAAO,MAAMC,uBAAA,GAA0B,MAAAA,CAAO;EAC5CC,MAAM;EACNC,GAAG;EACHC;AAAM,CAKP;EACC,MAAMC,qBAAA,GAAwB,CAACD,MAAA,GAAS,IAAIE,GAAA,KAAuCF,MAAA;EAEnF,MAAMG,OAAA,CAAQC,GAAG,CACfN,MAAA,CAAOO,GAAG,CAAC,MAAOC,KAAA;IAChB,IAAIV,uBAAA,CAAwBU,KAAA,GAAQ;MAClC;IACF;IAEA,IAAI,UAAUA,KAAA,IAAS,mBAAmBA,KAAA,IAASA,KAAA,CAAMC,aAAa,EAAE;MACtE,MAAMC,OAAA,GAAU,MAAMd,oBAAA,CAAqBY,KAAA,CAAMC,aAAa,EAAE;QAC9DE,EAAA,EAAIC,SAAA;QACJC,SAAA,EAAWD,SAAA;QACXE,IAAA,EAAM,CAAC;QACPC,UAAA,EAAYP,KAAA,CAAMO,UAAU;QAC5Bd,GAAA;QACAe,WAAA,EAAa,CAAC;QACdC,IAAA,EAAMhB,GAAA,CAAIgB;MACZ;MAEAd,qBAAA,CAAsBe,GAAG,CAACV,KAAA,CAAMW,IAAI,EAAET,OAAA;IACxC;IAEA,IAAIb,iBAAA,CAAkBW,KAAA,GAAQ;MAC5B,MAAMT,uBAAA,CAAwB;QAC5BC,MAAA,EAAQQ,KAAA,CAAMR,MAAM;QACpBC,GAAA;QACAC,MAAA,EAAQC;MACV;IACF;IAEA,IAAIK,KAAA,CAAMY,IAAI,KAAK,QAAQ;MACzB,MAAMf,OAAA,CAAQC,GAAG,CACfE,KAAA,CAAMa,IAAI,CAACd,GAAG,CAAEe,GAAA,IACdvB,uBAAA,CAAwB;QACtBC,MAAA,EAAQsB,GAAA,CAAItB,MAAM;QAClBC,GAAA;QACAC,MAAA,EAAQC;MACV;IAGN;EACF;EAGF,OAAOA,qBAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/E,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,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,YAAY,oGAKtB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAkCA,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,qBAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/E,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,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,YAAY,oGAKtB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAiCA,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,qBAEvD"}
@@ -37,8 +37,7 @@ export const NotFoundPage = async ({
37
37
  adminRoute,
38
38
  path: '/not-found'
39
39
  }),
40
- searchParams,
41
- useLayoutReq: true
40
+ searchParams
42
41
  });
43
42
  const params = await paramsPromise;
44
43
  if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","React","DefaultTemplate","getNextRequestI18n","initPage","NotFoundClient","generatePageMetadata","config","configPromise","i18n","title","t","NotFoundPage","importMap","params","paramsPromise","searchParams","searchParamsPromise","routes","admin","adminRoute","initPageResult","redirectUnauthenticatedUser","route","path","useLayoutReq","req","user","permissions","canAccessAdmin","_jsx","locale","payload","visibleEntities","NotFoundView","props","marginTop"],"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewServerProps, ImportMap, SanitizedConfig } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { NotFoundClient } from './index.client.js'\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: { [key: string]: string | string[] }\n}): Promise<Metadata> => {\n const config = await configPromise\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n return {\n title: i18n.t('general:notFound'),\n }\n}\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const NotFoundPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n config: Promise<SanitizedConfig>\n importMap: ImportMap\n params: Promise<{\n segments: string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n const { routes: { admin: adminRoute } = {} } = config\n\n const searchParams = await searchParamsPromise\n const initPageResult = await initPage({\n config,\n importMap,\n redirectUnauthenticatedUser: true,\n route: formatAdminURL({ adminRoute, path: '/not-found' }),\n searchParams,\n useLayoutReq: true,\n })\n\n const params = await paramsPromise\n\n if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {\n return <NotFoundClient />\n }\n\n return (\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 visibleEntities={initPageResult.visibleEntities}\n >\n <NotFoundClient />\n </DefaultTemplate>\n )\n}\n\nexport function NotFoundView(props: AdminViewServerProps) {\n return <NotFoundClient marginTop=\"large\" />\n}\n"],"mappings":";AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,oBAAA,GAAuB,MAAAA,CAAO;EACzCC,MAAA,EAAQC;AAAa,CAItB;EACC,MAAMD,MAAA,GAAS,MAAMC,aAAA;EAErB,MAAMC,IAAA,GAAO,MAAMN,kBAAA,CAAmB;IACpCI;EACF;EAEA,OAAO;IACLG,KAAA,EAAOD,IAAA,CAAKE,CAAC,CAAC;EAChB;AACF;AAQA,OAAO,MAAMC,YAAA,GAAe,MAAAA,CAAO;EACjCL,MAAA,EAAQC,aAAa;EACrBK,SAAS;EACTC,MAAA,EAAQC,aAAa;EACrBC,YAAA,EAAcC;AAAmB,CAUlC;EACC,MAAMV,MAAA,GAAS,MAAMC,aAAA;EACrB,MAAM;IAAEU,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGb,MAAA;EAE/C,MAAMS,YAAA,GAAe,MAAMC,mBAAA;EAC3B,MAAMI,cAAA,GAAiB,MAAMjB,QAAA,CAAS;IACpCG,MAAA;IACAM,SAAA;IACAS,2BAAA,EAA6B;IAC7BC,KAAA,EAAOvB,cAAA,CAAe;MAAEoB,UAAA;MAAYI,IAAA,EAAM;IAAa;IACvDR,YAAA;IACAS,YAAA,EAAc;EAChB;EAEA,MAAMX,MAAA,GAAS,MAAMC,aAAA;EAErB,IAAI,CAACM,cAAA,CAAeK,GAAG,CAACC,IAAI,IAAI,CAACN,cAAA,CAAeO,WAAW,CAACC,cAAc,EAAE;IAC1E,oBAAOC,IAAA,CAACzB,cAAA;EACV;EAEA,oBACEyB,IAAA,CAAC5B,eAAA;IACCO,IAAA,EAAMY,cAAA,CAAeK,GAAG,CAACjB,IAAI;IAC7BsB,MAAA,EAAQV,cAAA,CAAeU,MAAM;IAC7BjB,MAAA,EAAQA,MAAA;IACRkB,OAAA,EAASX,cAAA,CAAeK,GAAG,CAACM,OAAO;IACnCJ,WAAA,EAAaP,cAAA,CAAeO,WAAW;IACvCZ,YAAA,EAAcA,YAAA;IACdW,IAAA,EAAMN,cAAA,CAAeK,GAAG,CAACC,IAAI;IAC7BM,eAAA,EAAiBZ,cAAA,CAAeY,eAAe;cAE/C,aAAAH,IAAA,CAACzB,cAAA;;AAGP;AAEA,OAAO,SAAS6B,aAAaC,KAA2B;EACtD,oBAAOL,IAAA,CAACzB,cAAA;IAAe+B,SAAA,EAAU;;AACnC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","DefaultTemplate","getNextRequestI18n","initPage","NotFoundClient","generatePageMetadata","config","configPromise","i18n","title","t","NotFoundPage","importMap","params","paramsPromise","searchParams","searchParamsPromise","routes","admin","adminRoute","initPageResult","redirectUnauthenticatedUser","route","path","req","user","permissions","canAccessAdmin","_jsx","locale","payload","visibleEntities","NotFoundView","props","marginTop"],"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewServerProps, ImportMap, SanitizedConfig } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { NotFoundClient } from './index.client.js'\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: { [key: string]: string | string[] }\n}): Promise<Metadata> => {\n const config = await configPromise\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n return {\n title: i18n.t('general:notFound'),\n }\n}\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const NotFoundPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n config: Promise<SanitizedConfig>\n importMap: ImportMap\n params: Promise<{\n segments: string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n const { routes: { admin: adminRoute } = {} } = config\n\n const searchParams = await searchParamsPromise\n const initPageResult = await initPage({\n config,\n importMap,\n redirectUnauthenticatedUser: true,\n route: formatAdminURL({ adminRoute, path: '/not-found' }),\n searchParams,\n })\n\n const params = await paramsPromise\n\n if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {\n return <NotFoundClient />\n }\n\n return (\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 visibleEntities={initPageResult.visibleEntities}\n >\n <NotFoundClient />\n </DefaultTemplate>\n )\n}\n\nexport function NotFoundView(props: AdminViewServerProps) {\n return <NotFoundClient marginTop=\"large\" />\n}\n"],"mappings":";AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,oBAAA,GAAuB,MAAAA,CAAO;EACzCC,MAAA,EAAQC;AAAa,CAItB;EACC,MAAMD,MAAA,GAAS,MAAMC,aAAA;EAErB,MAAMC,IAAA,GAAO,MAAMN,kBAAA,CAAmB;IACpCI;EACF;EAEA,OAAO;IACLG,KAAA,EAAOD,IAAA,CAAKE,CAAC,CAAC;EAChB;AACF;AAQA,OAAO,MAAMC,YAAA,GAAe,MAAAA,CAAO;EACjCL,MAAA,EAAQC,aAAa;EACrBK,SAAS;EACTC,MAAA,EAAQC,aAAa;EACrBC,YAAA,EAAcC;AAAmB,CAUlC;EACC,MAAMV,MAAA,GAAS,MAAMC,aAAA;EACrB,MAAM;IAAEU,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGb,MAAA;EAE/C,MAAMS,YAAA,GAAe,MAAMC,mBAAA;EAC3B,MAAMI,cAAA,GAAiB,MAAMjB,QAAA,CAAS;IACpCG,MAAA;IACAM,SAAA;IACAS,2BAAA,EAA6B;IAC7BC,KAAA,EAAOvB,cAAA,CAAe;MAAEoB,UAAA;MAAYI,IAAA,EAAM;IAAa;IACvDR;EACF;EAEA,MAAMF,MAAA,GAAS,MAAMC,aAAA;EAErB,IAAI,CAACM,cAAA,CAAeI,GAAG,CAACC,IAAI,IAAI,CAACL,cAAA,CAAeM,WAAW,CAACC,cAAc,EAAE;IAC1E,oBAAOC,IAAA,CAACxB,cAAA;EACV;EAEA,oBACEwB,IAAA,CAAC3B,eAAA;IACCO,IAAA,EAAMY,cAAA,CAAeI,GAAG,CAAChB,IAAI;IAC7BqB,MAAA,EAAQT,cAAA,CAAeS,MAAM;IAC7BhB,MAAA,EAAQA,MAAA;IACRiB,OAAA,EAASV,cAAA,CAAeI,GAAG,CAACM,OAAO;IACnCJ,WAAA,EAAaN,cAAA,CAAeM,WAAW;IACvCX,YAAA,EAAcA,YAAA;IACdU,IAAA,EAAML,cAAA,CAAeI,GAAG,CAACC,IAAI;IAC7BM,eAAA,EAAiBX,cAAA,CAAeW,eAAe;cAE/C,aAAAH,IAAA,CAACxB,cAAA;;AAGP;AAEA,OAAO,SAAS4B,aAAaC,KAA2B;EACtD,oBAAOL,IAAA,CAACxB,cAAA;IAAe8B,SAAA,EAAU;;AACnC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.25.0-canary.6d6bbd2",
3
+ "version": "3.25.0-canary.90ff83f",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,9 +79,9 @@
79
79
  "react-diff-viewer-continued": "4.0.4",
80
80
  "sass": "1.77.4",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/graphql": "3.25.0-canary.6d6bbd2",
83
- "@payloadcms/translations": "3.25.0-canary.6d6bbd2",
84
- "@payloadcms/ui": "3.25.0-canary.6d6bbd2"
82
+ "@payloadcms/graphql": "3.25.0-canary.90ff83f",
83
+ "@payloadcms/ui": "3.25.0-canary.90ff83f",
84
+ "@payloadcms/translations": "3.25.0-canary.90ff83f"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.26.4",
@@ -100,12 +100,12 @@
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
101
101
  "swc-plugin-transform-remove-imports": "3.1.0",
102
102
  "@payloadcms/eslint-config": "3.9.0",
103
- "payload": "3.25.0-canary.6d6bbd2"
103
+ "payload": "3.25.0-canary.90ff83f"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.0.0",
108
- "payload": "3.25.0-canary.6d6bbd2"
108
+ "payload": "3.25.0-canary.90ff83f"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"