@payloadcms/next 3.0.0-beta.54 → 3.0.0-beta.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/prod/index.js +6 -6
  2. package/dist/prod/styles.css +1 -1
  3. package/dist/routes/rest/files/getFile.js +8 -5
  4. package/dist/routes/rest/files/getFile.js.map +1 -1
  5. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  6. package/dist/views/Edit/Default/index.js +6 -2
  7. package/dist/views/Edit/Default/index.js.map +1 -1
  8. package/dist/views/Root/index.d.ts.map +1 -1
  9. package/dist/views/Root/index.js +6 -1
  10. package/dist/views/Root/index.js.map +1 -1
  11. package/package.json +6 -6
  12. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +0 -91
  13. package/dist/elements/DocumentHeader/Tabs/index.scss +0 -53
  14. package/dist/elements/DocumentHeader/index.scss +0 -51
  15. package/dist/elements/LeaveWithoutSaving/index.scss +0 -36
  16. package/dist/elements/Nav/NavWrapper/index.scss +0 -17
  17. package/dist/elements/Nav/index.scss +0 -150
  18. package/dist/routes/rest/og/roboto-regular.woff +0 -0
  19. package/dist/scss/app.scss +0 -208
  20. package/dist/scss/colors.scss +0 -269
  21. package/dist/scss/custom.css +0 -1
  22. package/dist/scss/queries.scss +0 -27
  23. package/dist/scss/resets.scss +0 -17
  24. package/dist/scss/styles.scss +0 -11
  25. package/dist/scss/svg.scss +0 -10
  26. package/dist/scss/toasts.scss +0 -111
  27. package/dist/scss/type.scss +0 -117
  28. package/dist/scss/vars.scss +0 -213
  29. package/dist/scss/z-index.scss +0 -9
  30. package/dist/templates/Default/Wrapper/index.scss +0 -25
  31. package/dist/templates/Default/index.scss +0 -67
  32. package/dist/templates/Minimal/index.scss +0 -28
  33. package/dist/views/API/RenderJSON/index.scss +0 -90
  34. package/dist/views/API/index.scss +0 -124
  35. package/dist/views/Account/Settings/index.scss +0 -46
  36. package/dist/views/CreateFirstUser/index.scss +0 -5
  37. package/dist/views/Dashboard/Default/index.scss +0 -58
  38. package/dist/views/Edit/Default/Auth/index.scss +0 -61
  39. package/dist/views/Edit/Default/index.scss +0 -21
  40. package/dist/views/List/Default/index.scss +0 -195
  41. package/dist/views/LivePreview/IFrame/index.scss +0 -7
  42. package/dist/views/LivePreview/Preview/index.scss +0 -41
  43. package/dist/views/LivePreview/Toolbar/Controls/index.scss +0 -59
  44. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +0 -10
  45. package/dist/views/LivePreview/Toolbar/index.scss +0 -41
  46. package/dist/views/LivePreview/ToolbarArea/index.scss +0 -4
  47. package/dist/views/LivePreview/index.scss +0 -66
  48. package/dist/views/Login/LoginForm/index.scss +0 -8
  49. package/dist/views/Login/index.scss +0 -8
  50. package/dist/views/Logout/index.scss +0 -20
  51. package/dist/views/NotFound/index.scss +0 -37
  52. package/dist/views/ResetPassword/index.scss +0 -5
  53. package/dist/views/Unauthorized/index.scss +0 -36
  54. package/dist/views/Verify/index.scss +0 -14
  55. package/dist/views/Version/Default/index.scss +0 -70
  56. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +0 -4
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +0 -34
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -12
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +0 -13
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +0 -13
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +0 -13
  62. package/dist/views/Version/RenderFieldsToDiff/index.scss +0 -18
  63. package/dist/views/Version/Restore/index.scss +0 -30
  64. package/dist/views/Version/SelectComparison/index.scss +0 -13
  65. package/dist/views/Version/SelectLocales/index.scss +0 -7
  66. package/dist/views/Versions/index.scss +0 -108
@@ -19,10 +19,10 @@ export const getFile = async ({ collection, filename, req })=>{
19
19
  req
20
20
  });
21
21
  if (accessResult instanceof Response) return accessResult;
22
- let response = null;
23
22
  if (collection.config.upload.handlers?.length) {
23
+ let customResponse = null;
24
24
  for (const handler of collection.config.upload.handlers){
25
- response = await handler(req, {
25
+ customResponse = await handler(req, {
26
26
  doc: accessResult,
27
27
  params: {
28
28
  collection: collection.config.slug,
@@ -30,16 +30,19 @@ export const getFile = async ({ collection, filename, req })=>{
30
30
  }
31
31
  });
32
32
  }
33
- if (response instanceof Response) return response;
33
+ if (customResponse instanceof Response) return customResponse;
34
34
  }
35
35
  const fileDir = collection.config.upload?.staticDir || collection.config.slug;
36
36
  const filePath = path.resolve(`${fileDir}/${filename}`);
37
37
  const stats = await fsPromises.stat(filePath);
38
38
  const data = streamFile(filePath);
39
- const headers = new Headers(req.headers);
40
- headers.set('Content-Length', stats.size + '');
41
39
  const fileTypeResult = await fileTypeFromFile(filePath) || getFileTypeFallback(filePath);
40
+ let headers = new Headers();
42
41
  headers.set('Content-Type', fileTypeResult.mime);
42
+ headers.set('Content-Length', stats.size + '');
43
+ headers = collection.config.upload?.modifyResponseHeaders ? collection.config.upload.modifyResponseHeaders({
44
+ headers
45
+ }) : headers;
43
46
  return new Response(data, {
44
47
  headers: headersWithCors({
45
48
  headers,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/files/getFile.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData } from 'payload'\n\nimport { fileTypeFromFile } from 'file-type'\nimport fsPromises from 'fs/promises'\nimport httpStatus from 'http-status'\nimport path from 'path'\nimport { APIError } from 'payload'\n\nimport { streamFile } from '../../../fetchAPI-stream-file/index.js'\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\nimport { routeError } from '../routeError.js'\nimport { checkFileAccess } from './checkFileAccess.js'\nimport { getFileTypeFallback } from './getFileTypeFallback.js'\n\n// /:collectionSlug/file/:filename\ntype Args = {\n collection: Collection\n filename: string\n req: PayloadRequestWithData\n}\nexport const getFile = async ({ collection, filename, req }: Args): Promise<Response> => {\n try {\n if (!collection.config.upload) {\n throw new APIError(\n `This collection is not an upload collection: ${collection.config.slug}`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n const accessResult = await checkFileAccess({\n collection,\n filename,\n req,\n })\n\n if (accessResult instanceof Response) return accessResult\n\n let response: Response = null\n if (collection.config.upload.handlers?.length) {\n for (const handler of collection.config.upload.handlers) {\n response = await handler(req, {\n doc: accessResult,\n params: {\n collection: collection.config.slug,\n filename,\n },\n })\n }\n\n if (response instanceof Response) return response\n }\n\n const fileDir = collection.config.upload?.staticDir || collection.config.slug\n const filePath = path.resolve(`${fileDir}/${filename}`)\n\n const stats = await fsPromises.stat(filePath)\n\n const data = streamFile(filePath)\n\n const headers = new Headers(req.headers)\n headers.set('Content-Length', stats.size + '')\n\n const fileTypeResult = (await fileTypeFromFile(filePath)) || getFileTypeFallback(filePath)\n headers.set('Content-Type', fileTypeResult.mime)\n\n return new Response(data, {\n headers: headersWithCors({\n headers,\n req,\n }),\n status: httpStatus.OK,\n })\n } catch (err) {\n return routeError({\n collection,\n config: req.payload.config,\n err,\n req,\n })\n }\n}\n"],"names":["fileTypeFromFile","fsPromises","httpStatus","path","APIError","streamFile","headersWithCors","routeError","checkFileAccess","getFileTypeFallback","getFile","collection","filename","req","config","upload","slug","BAD_REQUEST","accessResult","Response","response","handlers","length","handler","doc","params","fileDir","staticDir","filePath","resolve","stats","stat","data","headers","Headers","set","size","fileTypeResult","mime","status","OK","err","payload"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,YAAW;AAC5C,OAAOC,gBAAgB,cAAa;AACpC,OAAOC,gBAAgB,cAAa;AACpC,OAAOC,UAAU,OAAM;AACvB,SAASC,QAAQ,QAAQ,UAAS;AAElC,SAASC,UAAU,QAAQ,yCAAwC;AACnE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,mBAAmB,QAAQ,2BAA0B;AAQ9D,OAAO,MAAMC,UAAU,OAAO,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,GAAG,EAAQ;IAC/D,IAAI;QACF,IAAI,CAACF,WAAWG,MAAM,CAACC,MAAM,EAAE;YAC7B,MAAM,IAAIX,SACR,CAAC,6CAA6C,EAAEO,WAAWG,MAAM,CAACE,IAAI,CAAC,CAAC,EACxEd,WAAWe,WAAW;QAE1B;QAEA,MAAMC,eAAe,MAAMV,gBAAgB;YACzCG;YACAC;YACAC;QACF;QAEA,IAAIK,wBAAwBC,UAAU,OAAOD;QAE7C,IAAIE,WAAqB;QACzB,IAAIT,WAAWG,MAAM,CAACC,MAAM,CAACM,QAAQ,EAAEC,QAAQ;YAC7C,KAAK,MAAMC,WAAWZ,WAAWG,MAAM,CAACC,MAAM,CAACM,QAAQ,CAAE;gBACvDD,WAAW,MAAMG,QAAQV,KAAK;oBAC5BW,KAAKN;oBACLO,QAAQ;wBACNd,YAAYA,WAAWG,MAAM,CAACE,IAAI;wBAClCJ;oBACF;gBACF;YACF;YAEA,IAAIQ,oBAAoBD,UAAU,OAAOC;QAC3C;QAEA,MAAMM,UAAUf,WAAWG,MAAM,CAACC,MAAM,EAAEY,aAAahB,WAAWG,MAAM,CAACE,IAAI;QAC7E,MAAMY,WAAWzB,KAAK0B,OAAO,CAAC,CAAC,EAAEH,QAAQ,CAAC,EAAEd,SAAS,CAAC;QAEtD,MAAMkB,QAAQ,MAAM7B,WAAW8B,IAAI,CAACH;QAEpC,MAAMI,OAAO3B,WAAWuB;QAExB,MAAMK,UAAU,IAAIC,QAAQrB,IAAIoB,OAAO;QACvCA,QAAQE,GAAG,CAAC,kBAAkBL,MAAMM,IAAI,GAAG;QAE3C,MAAMC,iBAAiB,AAAC,MAAMrC,iBAAiB4B,aAAcnB,oBAAoBmB;QACjFK,QAAQE,GAAG,CAAC,gBAAgBE,eAAeC,IAAI;QAE/C,OAAO,IAAInB,SAASa,MAAM;YACxBC,SAAS3B,gBAAgB;gBACvB2B;gBACApB;YACF;YACA0B,QAAQrC,WAAWsC,EAAE;QACvB;IACF,EAAE,OAAOC,KAAK;QACZ,OAAOlC,WAAW;YAChBI;YACAG,QAAQD,IAAI6B,OAAO,CAAC5B,MAAM;YAC1B2B;YACA5B;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/files/getFile.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData } from 'payload'\n\nimport { fileTypeFromFile } from 'file-type'\nimport fsPromises from 'fs/promises'\nimport httpStatus from 'http-status'\nimport path from 'path'\nimport { APIError } from 'payload'\n\nimport { streamFile } from '../../../fetchAPI-stream-file/index.js'\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\nimport { routeError } from '../routeError.js'\nimport { checkFileAccess } from './checkFileAccess.js'\nimport { getFileTypeFallback } from './getFileTypeFallback.js'\n\n// /:collectionSlug/file/:filename\ntype Args = {\n collection: Collection\n filename: string\n req: PayloadRequestWithData\n}\nexport const getFile = async ({ collection, filename, req }: Args): Promise<Response> => {\n try {\n if (!collection.config.upload) {\n throw new APIError(\n `This collection is not an upload collection: ${collection.config.slug}`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n const accessResult = await checkFileAccess({\n collection,\n filename,\n req,\n })\n\n if (accessResult instanceof Response) return accessResult\n\n if (collection.config.upload.handlers?.length) {\n let customResponse = null\n for (const handler of collection.config.upload.handlers) {\n customResponse = await handler(req, {\n doc: accessResult,\n params: {\n collection: collection.config.slug,\n filename,\n },\n })\n }\n\n if (customResponse instanceof Response) return customResponse\n }\n\n const fileDir = collection.config.upload?.staticDir || collection.config.slug\n const filePath = path.resolve(`${fileDir}/${filename}`)\n const stats = await fsPromises.stat(filePath)\n const data = streamFile(filePath)\n const fileTypeResult = (await fileTypeFromFile(filePath)) || getFileTypeFallback(filePath)\n\n let headers = new Headers()\n headers.set('Content-Type', fileTypeResult.mime)\n headers.set('Content-Length', stats.size + '')\n headers = collection.config.upload?.modifyResponseHeaders\n ? collection.config.upload.modifyResponseHeaders({ headers })\n : headers\n\n return new Response(data, {\n headers: headersWithCors({\n headers,\n req,\n }),\n status: httpStatus.OK,\n })\n } catch (err) {\n return routeError({\n collection,\n config: req.payload.config,\n err,\n req,\n })\n }\n}\n"],"names":["fileTypeFromFile","fsPromises","httpStatus","path","APIError","streamFile","headersWithCors","routeError","checkFileAccess","getFileTypeFallback","getFile","collection","filename","req","config","upload","slug","BAD_REQUEST","accessResult","Response","handlers","length","customResponse","handler","doc","params","fileDir","staticDir","filePath","resolve","stats","stat","data","fileTypeResult","headers","Headers","set","mime","size","modifyResponseHeaders","status","OK","err","payload"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,YAAW;AAC5C,OAAOC,gBAAgB,cAAa;AACpC,OAAOC,gBAAgB,cAAa;AACpC,OAAOC,UAAU,OAAM;AACvB,SAASC,QAAQ,QAAQ,UAAS;AAElC,SAASC,UAAU,QAAQ,yCAAwC;AACnE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,mBAAmB,QAAQ,2BAA0B;AAQ9D,OAAO,MAAMC,UAAU,OAAO,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,GAAG,EAAQ;IAC/D,IAAI;QACF,IAAI,CAACF,WAAWG,MAAM,CAACC,MAAM,EAAE;YAC7B,MAAM,IAAIX,SACR,CAAC,6CAA6C,EAAEO,WAAWG,MAAM,CAACE,IAAI,CAAC,CAAC,EACxEd,WAAWe,WAAW;QAE1B;QAEA,MAAMC,eAAe,MAAMV,gBAAgB;YACzCG;YACAC;YACAC;QACF;QAEA,IAAIK,wBAAwBC,UAAU,OAAOD;QAE7C,IAAIP,WAAWG,MAAM,CAACC,MAAM,CAACK,QAAQ,EAAEC,QAAQ;YAC7C,IAAIC,iBAAiB;YACrB,KAAK,MAAMC,WAAWZ,WAAWG,MAAM,CAACC,MAAM,CAACK,QAAQ,CAAE;gBACvDE,iBAAiB,MAAMC,QAAQV,KAAK;oBAClCW,KAAKN;oBACLO,QAAQ;wBACNd,YAAYA,WAAWG,MAAM,CAACE,IAAI;wBAClCJ;oBACF;gBACF;YACF;YAEA,IAAIU,0BAA0BH,UAAU,OAAOG;QACjD;QAEA,MAAMI,UAAUf,WAAWG,MAAM,CAACC,MAAM,EAAEY,aAAahB,WAAWG,MAAM,CAACE,IAAI;QAC7E,MAAMY,WAAWzB,KAAK0B,OAAO,CAAC,CAAC,EAAEH,QAAQ,CAAC,EAAEd,SAAS,CAAC;QACtD,MAAMkB,QAAQ,MAAM7B,WAAW8B,IAAI,CAACH;QACpC,MAAMI,OAAO3B,WAAWuB;QACxB,MAAMK,iBAAiB,AAAC,MAAMjC,iBAAiB4B,aAAcnB,oBAAoBmB;QAEjF,IAAIM,UAAU,IAAIC;QAClBD,QAAQE,GAAG,CAAC,gBAAgBH,eAAeI,IAAI;QAC/CH,QAAQE,GAAG,CAAC,kBAAkBN,MAAMQ,IAAI,GAAG;QAC3CJ,UAAUvB,WAAWG,MAAM,CAACC,MAAM,EAAEwB,wBAChC5B,WAAWG,MAAM,CAACC,MAAM,CAACwB,qBAAqB,CAAC;YAAEL;QAAQ,KACzDA;QAEJ,OAAO,IAAIf,SAASa,MAAM;YACxBE,SAAS5B,gBAAgB;gBACvB4B;gBACArB;YACF;YACA2B,QAAQtC,WAAWuC,EAAE;QACvB;IACF,EAAE,OAAOC,KAAK;QACZ,OAAOnC,WAAW;YAChBI;YACAG,QAAQD,IAAI8B,OAAO,CAAC7B,MAAM;YAC1B4B;YACA7B;QACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAMpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAgOnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAMpD,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAwOnC,CAAA"}
@@ -18,7 +18,7 @@ export const DefaultEditView = ()=>{
18
18
  const config = useConfig();
19
19
  const router = useRouter();
20
20
  const { dispatchFormQueryParams } = useFormQueryParams();
21
- const { getFieldMap } = useComponentMap();
21
+ const { getComponentMap, getFieldMap } = useComponentMap();
22
22
  const params = useSearchParams();
23
23
  const depth = useEditDepth();
24
24
  const { reportUpdate } = useDocumentEvents();
@@ -27,6 +27,10 @@ export const DefaultEditView = ()=>{
27
27
  const collectionConfig = collectionSlug && collections.find((collection)=>collection.slug === collectionSlug);
28
28
  const globalConfig = globalSlug && globals.find((global)=>global.slug === globalSlug);
29
29
  const entitySlug = collectionConfig?.slug || globalConfig?.slug;
30
+ const componentMap = getComponentMap({
31
+ collectionSlug: collectionConfig?.slug,
32
+ globalSlug: globalConfig?.slug
33
+ });
30
34
  const fieldMap = getFieldMap({
31
35
  collectionSlug: collectionConfig?.slug,
32
36
  globalSlug: globalConfig?.slug
@@ -170,7 +174,7 @@ export const DefaultEditView = ()=>{
170
174
  verify: auth.verify
171
175
  }),
172
176
  upload && /*#__PURE__*/ _jsx(React.Fragment, {
173
- children: /*#__PURE__*/ _jsx(Upload, {
177
+ children: componentMap.Upload !== undefined ? componentMap.Upload : /*#__PURE__*/ _jsx(Upload, {
174
178
  collectionSlug: collectionConfig.slug,
175
179
  initialState: initialState,
176
180
  uploadConfig: upload
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useFormQueryParams,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useFormQueryParams,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getComponentMap, getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {componentMap.Upload !== undefined ? (\n componentMap.Upload\n ) : (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getComponentMap","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","componentMap","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/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,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,qDAIlB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,+BA0FA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/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,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,qDAIlB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,+BAiGA,CAAA"}
@@ -30,7 +30,12 @@ export const RootPage = async ({ config: configPromise, params, searchParams })=
30
30
  req: initPageResult?.req
31
31
  })?.then((doc)=>!!doc);
32
32
  const routeWithAdmin = `${adminRoute}${createFirstUserRoute}`;
33
- if (!dbHasUser && currentRoute !== routeWithAdmin) {
33
+ const collectionConfig = config.collections.find(({ slug })=>slug === userSlug);
34
+ const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy;
35
+ if (disableLocalStrategy && currentRoute === routeWithAdmin) {
36
+ redirect(adminRoute);
37
+ }
38
+ if (!dbHasUser && currentRoute !== routeWithAdmin && !disableLocalStrategy) {
34
39
  redirect(routeWithAdmin);
35
40
  }
36
41
  if (dbHasUser && currentRoute === routeWithAdmin) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { WithServerSideProps } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n params,\n searchParams,\n}: {\n config: Promise<SanitizedConfig>\n params: {\n segments: string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = `${adminRoute}${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const { DefaultView, initPageOptions, templateClassName, templateType } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n searchParams,\n segments,\n })\n\n let dbHasUser = false\n\n if (!DefaultView) {\n notFound()\n }\n\n const initPageResult = await initPage(initPageOptions)\n\n if (initPageResult) {\n dbHasUser = await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc)\n\n const routeWithAdmin = `${adminRoute}${createFirstUserRoute}`\n\n if (!dbHasUser && currentRoute !== routeWithAdmin) {\n redirect(routeWithAdmin)\n }\n\n if (dbHasUser && currentRoute === routeWithAdmin) {\n redirect(adminRoute)\n }\n }\n\n const RenderedView = (\n <WithServerSideProps\n Component={DefaultView}\n serverOnlyProps={\n {\n initPageResult,\n params,\n searchParams,\n } as any\n }\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult.visibleEntities?.collections,\n globals: initPageResult.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"names":["WithServerSideProps","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","params","searchParams","admin","routes","createFirstUser","createFirstUserRoute","user","userSlug","adminRoute","currentRoute","Array","isArray","segments","join","DefaultView","initPageOptions","templateClassName","templateType","dbHasUser","initPageResult","req","payload","db","findOne","collection","then","doc","routeWithAdmin","RenderedView","Component","serverOnlyProps","className","i18n","locale","permissions","visibleEntities","collections","globals"],"mappings":";AAIA,SAASA,mBAAmB,QAAQ,wBAAuB;AAC3D,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,qBAAoB;AACvD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,oCAAmC;AAC5D,SAASC,iBAAiB,QAAQ,yBAAwB;AAE1D,SAASC,oBAAoB,QAAQ,YAAW;AAShD,OAAO,MAAMC,WAAW,OAAO,EAC7BC,QAAQC,aAAa,EACrBC,MAAM,EACNC,YAAY,EASb;IACC,MAAMH,SAAS,MAAMC;IAErB,MAAM,EACJG,OAAO,EACLC,QAAQ,EAAEC,iBAAiBC,oBAAoB,EAAE,EACjDC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAMW,eAAe,CAAC,EAAED,WAAW,EAAEE,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAI,CAAC,CAAC,EAAEZ,OAAOY,QAAQ,CAACC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAE5G,MAAMD,WAAWF,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAIZ,OAAOY,QAAQ,GAAG,EAAE;IAEtE,MAAM,EAAEE,WAAW,EAAEC,eAAe,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGtB,kBAAkB;QAC1Fa;QACAV;QACAW;QACAR;QACAW;IACF;IAEA,IAAIM,YAAY;IAEhB,IAAI,CAACJ,aAAa;QAChB1B;IACF;IAEA,MAAM+B,iBAAiB,MAAMzB,SAASqB;IAEtC,IAAII,gBAAgB;QAClBD,YAAY,MAAMC,gBAAgBC,IAAIC,QAAQC,GAC3CC,QAAQ;YACPC,YAAYjB;YACZa,KAAKD,gBAAgBC;QACvB,IACEK,KAAK,CAACC,MAAQ,CAAC,CAACA;QAEpB,MAAMC,iBAAiB,CAAC,EAAEnB,WAAW,EAAEH,qBAAqB,CAAC;QAE7D,IAAI,CAACa,aAAaT,iBAAiBkB,gBAAgB;YACjDtC,SAASsC;QACX;QAEA,IAAIT,aAAaT,iBAAiBkB,gBAAgB;YAChDtC,SAASmB;QACX;IACF;IAEA,MAAMoB,6BACJ,KAACzC;QACC0C,WAAWf;QACXgB,iBACE;YACEX;YACAnB;YACAC;QACF;;IAKN,qBACE,MAACV;;YACE,CAAC0B,8BAAgB,KAAC1B;0BAAUqC;;YAC5BX,iBAAiB,2BAChB,KAACxB;gBAAgBsC,WAAWf;0BAAoBY;;YAEjDX,iBAAiB,2BAChB,KAACzB;gBACCwC,MAAMb,gBAAgBC,IAAIY;gBAC1BC,QAAQd,gBAAgBc;gBACxBjC,QAAQA;gBACRqB,SAASF,gBAAgBC,IAAIC;gBAC7Ba,aAAaf,gBAAgBe;gBAC7BjC,cAAcA;gBACdK,MAAMa,gBAAgBC,IAAId;gBAC1B6B,iBAAiB;oBACf,+KAA+K;oBAC/K,2EAA2E;oBAC3EC,aAAajB,eAAegB,eAAe,EAAEC;oBAC7CC,SAASlB,eAAegB,eAAe,EAAEE;gBAC3C;0BAECT;;;;AAKX,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { WithServerSideProps } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n params,\n searchParams,\n}: {\n config: Promise<SanitizedConfig>\n params: {\n segments: string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = `${adminRoute}${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const { DefaultView, initPageOptions, templateClassName, templateType } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n searchParams,\n segments,\n })\n\n let dbHasUser = false\n\n if (!DefaultView) {\n notFound()\n }\n\n const initPageResult = await initPage(initPageOptions)\n\n if (initPageResult) {\n dbHasUser = await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc)\n\n const routeWithAdmin = `${adminRoute}${createFirstUserRoute}`\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === routeWithAdmin) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== routeWithAdmin && !disableLocalStrategy) {\n redirect(routeWithAdmin)\n }\n\n if (dbHasUser && currentRoute === routeWithAdmin) {\n redirect(adminRoute)\n }\n }\n\n const RenderedView = (\n <WithServerSideProps\n Component={DefaultView}\n serverOnlyProps={\n {\n initPageResult,\n params,\n searchParams,\n } as any\n }\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult.visibleEntities?.collections,\n globals: initPageResult.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"names":["WithServerSideProps","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","params","searchParams","admin","routes","createFirstUser","createFirstUserRoute","user","userSlug","adminRoute","currentRoute","Array","isArray","segments","join","DefaultView","initPageOptions","templateClassName","templateType","dbHasUser","initPageResult","req","payload","db","findOne","collection","then","doc","routeWithAdmin","collectionConfig","collections","find","slug","disableLocalStrategy","auth","RenderedView","Component","serverOnlyProps","className","i18n","locale","permissions","visibleEntities","globals"],"mappings":";AAIA,SAASA,mBAAmB,QAAQ,wBAAuB;AAC3D,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,qBAAoB;AACvD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,oCAAmC;AAC5D,SAASC,iBAAiB,QAAQ,yBAAwB;AAE1D,SAASC,oBAAoB,QAAQ,YAAW;AAShD,OAAO,MAAMC,WAAW,OAAO,EAC7BC,QAAQC,aAAa,EACrBC,MAAM,EACNC,YAAY,EASb;IACC,MAAMH,SAAS,MAAMC;IAErB,MAAM,EACJG,OAAO,EACLC,QAAQ,EAAEC,iBAAiBC,oBAAoB,EAAE,EACjDC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAMW,eAAe,CAAC,EAAED,WAAW,EAAEE,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAI,CAAC,CAAC,EAAEZ,OAAOY,QAAQ,CAACC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAE5G,MAAMD,WAAWF,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAIZ,OAAOY,QAAQ,GAAG,EAAE;IAEtE,MAAM,EAAEE,WAAW,EAAEC,eAAe,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGtB,kBAAkB;QAC1Fa;QACAV;QACAW;QACAR;QACAW;IACF;IAEA,IAAIM,YAAY;IAEhB,IAAI,CAACJ,aAAa;QAChB1B;IACF;IAEA,MAAM+B,iBAAiB,MAAMzB,SAASqB;IAEtC,IAAII,gBAAgB;QAClBD,YAAY,MAAMC,gBAAgBC,IAAIC,QAAQC,GAC3CC,QAAQ;YACPC,YAAYjB;YACZa,KAAKD,gBAAgBC;QACvB,IACEK,KAAK,CAACC,MAAQ,CAAC,CAACA;QAEpB,MAAMC,iBAAiB,CAAC,EAAEnB,WAAW,EAAEH,qBAAqB,CAAC;QAE7D,MAAMuB,mBAAmB9B,OAAO+B,WAAW,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASxB;QACxE,MAAMyB,uBAAuBJ,kBAAkBK,MAAMD;QAErD,IAAIA,wBAAwBvB,iBAAiBkB,gBAAgB;YAC3DtC,SAASmB;QACX;QAEA,IAAI,CAACU,aAAaT,iBAAiBkB,kBAAkB,CAACK,sBAAsB;YAC1E3C,SAASsC;QACX;QAEA,IAAIT,aAAaT,iBAAiBkB,gBAAgB;YAChDtC,SAASmB;QACX;IACF;IAEA,MAAM0B,6BACJ,KAAC/C;QACCgD,WAAWrB;QACXsB,iBACE;YACEjB;YACAnB;YACAC;QACF;;IAKN,qBACE,MAACV;;YACE,CAAC0B,8BAAgB,KAAC1B;0BAAU2C;;YAC5BjB,iBAAiB,2BAChB,KAACxB;gBAAgB4C,WAAWrB;0BAAoBkB;;YAEjDjB,iBAAiB,2BAChB,KAACzB;gBACC8C,MAAMnB,gBAAgBC,IAAIkB;gBAC1BC,QAAQpB,gBAAgBoB;gBACxBvC,QAAQA;gBACRqB,SAASF,gBAAgBC,IAAIC;gBAC7BmB,aAAarB,gBAAgBqB;gBAC7BvC,cAAcA;gBACdK,MAAMa,gBAAgBC,IAAId;gBAC1BmC,iBAAiB;oBACf,+KAA+K;oBAC/K,2EAA2E;oBAC3EZ,aAAaV,eAAesB,eAAe,EAAEZ;oBAC7Ca,SAASvB,eAAesB,eAAe,EAAEC;gBAC3C;0BAECR;;;;AAKX,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.0.0-beta.54",
3
+ "version": "3.0.0-beta.55",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,9 +62,9 @@
62
62
  "sass": "1.77.4",
63
63
  "sonner": "^1.5.0",
64
64
  "ws": "^8.16.0",
65
- "@payloadcms/graphql": "3.0.0-beta.54",
66
- "@payloadcms/translations": "3.0.0-beta.54",
67
- "@payloadcms/ui": "3.0.0-beta.54"
65
+ "@payloadcms/graphql": "3.0.0-beta.55",
66
+ "@payloadcms/translations": "3.0.0-beta.55",
67
+ "@payloadcms/ui": "3.0.0-beta.55"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@next/eslint-plugin-next": "^14.1.0",
@@ -84,12 +84,12 @@
84
84
  "webpack": "^5.78.0",
85
85
  "webpack-cli": "^5.1.4",
86
86
  "@payloadcms/eslint-config": "1.1.1",
87
- "payload": "3.0.0-beta.54"
87
+ "payload": "3.0.0-beta.55"
88
88
  },
89
89
  "peerDependencies": {
90
90
  "graphql": "^16.8.1",
91
91
  "next": "^15.0.0-rc.0",
92
- "payload": "3.0.0-beta.54"
92
+ "payload": "3.0.0-beta.55"
93
93
  },
94
94
  "engines": {
95
95
  "node": "^18.20.2 || >=20.9.0"
@@ -1,91 +0,0 @@
1
- @import '../../../../scss/styles.scss';
2
-
3
- .doc-tab {
4
- @extend %h5;
5
- position: relative;
6
-
7
- &__link {
8
- text-decoration: none;
9
- display: flex;
10
- justify-content: center;
11
- align-items: center;
12
- white-space: nowrap;
13
-
14
- // Use a pseudo element for the accessability so that it doesn't take up DOM space
15
- // Also because the parent element has `overflow: hidden` which would clip an outline
16
- &:focus-visible::after {
17
- content: '';
18
- border: var(--accessibility-outline);
19
- position: absolute;
20
- top: 0;
21
- right: 0;
22
- bottom: 0;
23
- left: 0;
24
- pointer-events: none;
25
- }
26
- }
27
-
28
- &:focus:not(:focus-visible) {
29
- opacity: 1;
30
- }
31
-
32
- &::before {
33
- content: '';
34
- display: block;
35
- position: absolute;
36
- width: 100%;
37
- height: 100%;
38
- border-radius: 2px;
39
- background-color: var(--theme-elevation-50);
40
- opacity: 0;
41
- }
42
-
43
- &:hover {
44
- &::before {
45
- opacity: 1;
46
- }
47
-
48
- .doc-tab__count {
49
- background-color: var(--theme-elevation-150);
50
- }
51
- }
52
-
53
- &--active {
54
- &::before {
55
- opacity: 1;
56
- background-color: var(--theme-elevation-100);
57
- }
58
-
59
- .doc-tab {
60
- &__count {
61
- background-color: var(--theme-elevation-250);
62
- }
63
- }
64
-
65
- &:hover {
66
- .doc-tab {
67
- &__count {
68
- background-color: var(--theme-elevation-250);
69
- }
70
- }
71
- }
72
- }
73
-
74
- &__label {
75
- display: flex;
76
- position: relative;
77
- align-items: center;
78
- gap: 4px;
79
- width: 100%;
80
- height: 100%;
81
- padding: calc(var(--base) / 2) calc(var(--base));
82
- }
83
-
84
- &__count {
85
- min-width: 22px;
86
- text-align: center;
87
- padding: 2px 7px;
88
- background-color: var(--theme-elevation-100);
89
- border-radius: 1px;
90
- }
91
- }
@@ -1,53 +0,0 @@
1
- @import '../../../scss/styles.scss';
2
-
3
- .doc-tabs {
4
- display: flex;
5
-
6
- &__tabs {
7
- display: flex;
8
- gap: calc(var(--base) / 2);
9
- list-style: none;
10
- align-items: center;
11
- margin: 0;
12
- padding-left: 0;
13
- }
14
-
15
- @include mid-break {
16
- width: 100%;
17
- padding: 0;
18
- overflow: auto;
19
-
20
- // this container has a gradient overlay as visual indication of `overflow: scroll`
21
- &::-webkit-scrollbar {
22
- display: none;
23
- }
24
-
25
- &::after {
26
- content: '';
27
- display: block;
28
- position: sticky;
29
- right: 0;
30
- width: calc(var(--base) * 2);
31
- height: calc(var(--base) * 2);
32
- background: linear-gradient(to right, transparent, var(--theme-bg));
33
- flex-shrink: 0;
34
- z-index: 1111;
35
- pointer-events: none;
36
- }
37
-
38
- &__tabs {
39
- padding: 0;
40
- margin-left: var(--gutter-h);
41
- }
42
- }
43
-
44
- @include small-break {
45
- &__tabs-container {
46
- margin-right: var(--gutter-h);
47
- }
48
-
49
- &__tabs {
50
- gap: var(--gutter-h);
51
- }
52
- }
53
- }
@@ -1,51 +0,0 @@
1
- @import '../../scss/styles.scss';
2
-
3
- .doc-header {
4
- width: 100%;
5
- margin-top: base(0.5);
6
- padding-bottom: calc(var(--base) * 1.5);
7
- display: flex;
8
- align-items: center;
9
- position: relative;
10
- display: flex;
11
- gap: calc(var(--base) / 2);
12
-
13
- &::after {
14
- content: '';
15
- display: block;
16
- position: absolute;
17
- height: 1px;
18
- background: var(--theme-elevation-100);
19
- width: 100%;
20
- left: 0;
21
- top: calc(100% - 1px);
22
- }
23
-
24
- &__title {
25
- flex-grow: 1;
26
- white-space: nowrap;
27
- overflow: hidden;
28
- text-overflow: ellipsis;
29
- margin: 0;
30
- }
31
-
32
- @include mid-break {
33
- padding-left: 0;
34
- padding-right: 0;
35
- margin-top: base(0.25);
36
- padding-bottom: calc(var(--base) / 1.5);
37
- flex-direction: column;
38
- gap: calc(var(--base) / 2);
39
- padding-bottom: calc(var(--base) / 2);
40
-
41
- &__title {
42
- width: 100%;
43
- padding-left: var(--gutter-h);
44
- padding-right: var(--gutter-h);
45
- }
46
- }
47
-
48
- @include small-break {
49
- margin-top: 0;
50
- }
51
- }
@@ -1,36 +0,0 @@
1
- @import '../../scss/styles.scss';
2
-
3
- .leave-without-saving {
4
- @include blur-bg;
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- height: 100%;
9
-
10
- &__wrapper {
11
- z-index: 1;
12
- position: relative;
13
- display: flex;
14
- flex-direction: column;
15
- gap: var(--base);
16
- }
17
-
18
- &__content {
19
- display: flex;
20
- flex-direction: column;
21
- gap: var(--base);
22
-
23
- > * {
24
- margin: 0;
25
- }
26
- }
27
-
28
- &__controls {
29
- display: flex;
30
- gap: var(--base);
31
-
32
- .btn {
33
- margin: 0;
34
- }
35
- }
36
- }
@@ -1,17 +0,0 @@
1
- @import '../../../scss/styles.scss';
2
-
3
- .nav {
4
- position: sticky;
5
- top: 0;
6
- left: 0;
7
- flex-shrink: 0;
8
- height: 100vh;
9
- width: var(--nav-width);
10
- border-right: 1px solid var(--theme-elevation-100);
11
- opacity: 0;
12
- transition: opacity var(--nav-trans-time) ease-in-out;
13
-
14
- &--nav-open {
15
- opacity: 1;
16
- }
17
- }