@payloadcms/next 3.0.0-beta.107 → 3.0.0-beta.109

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 (126) hide show
  1. package/dist/cjs/withPayload.js +4 -4
  2. package/dist/cjs/withPayload.js.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +28 -24
  5. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  6. package/dist/elements/DocumentLocked/index.d.ts +12 -0
  7. package/dist/elements/DocumentLocked/index.d.ts.map +1 -0
  8. package/dist/elements/DocumentLocked/index.js +142 -0
  9. package/dist/elements/DocumentLocked/index.js.map +1 -0
  10. package/dist/elements/DocumentLocked/index.scss +37 -0
  11. package/dist/elements/DocumentTakeOver/index.d.ts +8 -0
  12. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -0
  13. package/dist/elements/DocumentTakeOver/index.js +98 -0
  14. package/dist/elements/DocumentTakeOver/index.js.map +1 -0
  15. package/dist/elements/DocumentTakeOver/index.scss +37 -0
  16. package/dist/elements/Nav/NavWrapper/index.scss +5 -0
  17. package/dist/elements/Nav/index.scss +5 -1
  18. package/dist/layouts/Root/index.d.ts.map +1 -1
  19. package/dist/layouts/Root/index.js +52 -20
  20. package/dist/layouts/Root/index.js.map +1 -1
  21. package/dist/prod/styles.css +1 -1
  22. package/dist/routes/graphql/handler.d.ts.map +1 -1
  23. package/dist/routes/graphql/handler.js +23 -11
  24. package/dist/routes/graphql/handler.js.map +1 -1
  25. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  26. package/dist/routes/rest/collections/find.js +3 -0
  27. package/dist/routes/rest/collections/find.js.map +1 -1
  28. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  29. package/dist/routes/rest/collections/findByID.js +2 -0
  30. package/dist/routes/rest/collections/findByID.js.map +1 -1
  31. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  32. package/dist/routes/rest/collections/updateByID.js +2 -0
  33. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  34. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  35. package/dist/routes/rest/globals/update.js +2 -0
  36. package/dist/routes/rest/globals/update.js.map +1 -1
  37. package/dist/routes/rest/routeError.d.ts +2 -7
  38. package/dist/routes/rest/routeError.d.ts.map +1 -1
  39. package/dist/routes/rest/routeError.js +33 -19
  40. package/dist/routes/rest/routeError.js.map +1 -1
  41. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +13 -0
  42. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -0
  43. package/dist/routes/rest/utilities/sanitizeJoinParams.js +17 -0
  44. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -0
  45. package/dist/templates/Default/index.d.ts.map +1 -1
  46. package/dist/templates/Default/index.js +7 -3
  47. package/dist/templates/Default/index.js.map +1 -1
  48. package/dist/templates/Default/index.scss +6 -1
  49. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  50. package/dist/utilities/getRequestTheme.js +3 -0
  51. package/dist/utilities/getRequestTheme.js.map +1 -1
  52. package/dist/utilities/initPage/index.d.ts.map +1 -1
  53. package/dist/utilities/initPage/index.js +22 -32
  54. package/dist/utilities/initPage/index.js.map +1 -1
  55. package/dist/utilities/initReq.d.ts +11 -0
  56. package/dist/utilities/initReq.d.ts.map +1 -0
  57. package/dist/utilities/initReq.js +46 -0
  58. package/dist/utilities/initReq.js.map +1 -0
  59. package/dist/views/Account/Settings/index.d.ts +2 -1
  60. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  61. package/dist/views/Account/Settings/index.js +3 -2
  62. package/dist/views/Account/Settings/index.js.map +1 -1
  63. package/dist/views/Account/index.d.ts.map +1 -1
  64. package/dist/views/Account/index.js +3 -1
  65. package/dist/views/Account/index.js.map +1 -1
  66. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  67. package/dist/views/CreateFirstUser/index.client.js +35 -16
  68. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  69. package/dist/views/Dashboard/Default/index.d.ts +8 -1
  70. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  71. package/dist/views/Dashboard/Default/index.js +14 -2
  72. package/dist/views/Dashboard/Default/index.js.map +1 -1
  73. package/dist/views/Dashboard/Default/index.scss +5 -0
  74. package/dist/views/Dashboard/index.d.ts.map +1 -1
  75. package/dist/views/Dashboard/index.js +16 -1
  76. package/dist/views/Dashboard/index.js.map +1 -1
  77. package/dist/views/Document/getDocumentData.d.ts +5 -2
  78. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  79. package/dist/views/Document/getDocumentData.js +13 -2
  80. package/dist/views/Document/getDocumentData.js.map +1 -1
  81. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  82. package/dist/views/Edit/Default/index.js +127 -14
  83. package/dist/views/Edit/Default/index.js.map +1 -1
  84. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -0
  85. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  86. package/dist/views/ForgotPassword/index.js +2 -2
  87. package/dist/views/ForgotPassword/index.js.map +1 -1
  88. package/dist/views/List/Default/index.d.ts.map +1 -1
  89. package/dist/views/List/Default/index.js +62 -58
  90. package/dist/views/List/Default/index.js.map +1 -1
  91. package/dist/views/List/Default/index.scss +1 -1
  92. package/dist/views/List/index.d.ts.map +1 -1
  93. package/dist/views/List/index.js +1 -0
  94. package/dist/views/List/index.js.map +1 -1
  95. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  96. package/dist/views/LivePreview/index.client.js +214 -200
  97. package/dist/views/LivePreview/index.client.js.map +1 -1
  98. package/dist/views/LivePreview/usePopupWindow.js +119 -74
  99. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  100. package/dist/views/Login/LoginForm/index.js +2 -2
  101. package/dist/views/Login/LoginForm/index.js.map +1 -1
  102. package/dist/views/Version/Default/index.d.ts.map +1 -1
  103. package/dist/views/Version/Default/index.js +2 -0
  104. package/dist/views/Version/Default/index.js.map +1 -1
  105. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  106. package/dist/views/Version/Restore/index.js +8 -14
  107. package/dist/views/Version/Restore/index.js.map +1 -1
  108. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  109. package/dist/views/Version/SelectComparison/index.js +24 -3
  110. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  111. package/dist/views/Version/SelectComparison/types.d.ts +1 -0
  112. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  113. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  114. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  115. package/dist/views/Versions/buildColumns.js +63 -48
  116. package/dist/views/Versions/buildColumns.js.map +1 -1
  117. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  118. package/dist/views/Versions/cells/AutosaveCell/index.js +48 -20
  119. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  120. package/dist/views/Versions/index.d.ts.map +1 -1
  121. package/dist/views/Versions/index.js +23 -6
  122. package/dist/views/Versions/index.js.map +1 -1
  123. package/dist/withPayload.d.ts.map +1 -1
  124. package/dist/withPayload.js +4 -4
  125. package/dist/withPayload.js.map +1 -1
  126. package/package.json +23 -15
@@ -1 +1 @@
1
- {"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","themeCookie","get","cookiePrefix","themeFromCookie","value","includes","themeFromHeader"],"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'\nimport type { SanitizedConfig } from 'payload'\n\nimport { defaultTheme, type Theme } from '@payloadcms/ui'\n\ntype GetRequestLanguageArgs = {\n config: SanitizedConfig\n cookies: Map<string, string> | ReadonlyRequestCookies\n headers: Request['headers']\n}\n\nconst acceptedThemes: Theme[] = ['dark', 'light']\n\nexport const getRequestTheme = ({ config, cookies, headers }: GetRequestLanguageArgs): Theme => {\n const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`)\n\n const themeFromCookie: Theme = (\n typeof themeCookie === 'string' ? themeCookie : themeCookie?.value\n ) as Theme\n\n if (themeFromCookie && acceptedThemes.includes(themeFromCookie)) {\n return themeFromCookie\n }\n\n const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme') as Theme\n\n if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {\n return themeFromHeader\n }\n\n return defaultTheme\n}\n"],"mappings":"AAGA,SAASA,YAAY,QAAoB;AAQzC,MAAMC,cAAA,GAA0B,CAAC,QAAQ,QAAQ;AAEjD,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAO,CAA0B;EAClF,MAAMC,WAAA,GAAcF,OAAA,CAAQG,GAAG,CAAC,GAAGJ,MAAA,CAAOK,YAAY,IAAI,iBAAiB;EAE3E,MAAMC,eAAA,GACJ,OAAOH,WAAA,KAAgB,WAAWA,WAAA,GAAcA,WAAA,EAAaI,KAAA;EAG/D,IAAID,eAAA,IAAmBR,cAAA,CAAeU,QAAQ,CAACF,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,MAAMG,eAAA,GAAkBP,OAAA,CAAQE,GAAG,CAAC;EAEpC,IAAIK,eAAA,IAAmBX,cAAA,CAAeU,QAAQ,CAACC,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,OAAOZ,YAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","admin","theme","includes","themeCookie","get","cookiePrefix","themeFromCookie","value","themeFromHeader"],"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'\nimport type { SanitizedConfig } from 'payload'\n\nimport { defaultTheme, type Theme } from '@payloadcms/ui'\n\ntype GetRequestLanguageArgs = {\n config: SanitizedConfig\n cookies: Map<string, string> | ReadonlyRequestCookies\n headers: Request['headers']\n}\n\nconst acceptedThemes: Theme[] = ['dark', 'light']\n\nexport const getRequestTheme = ({ config, cookies, headers }: GetRequestLanguageArgs): Theme => {\n if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {\n return config.admin.theme\n }\n\n const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`)\n\n const themeFromCookie: Theme = (\n typeof themeCookie === 'string' ? themeCookie : themeCookie?.value\n ) as Theme\n\n if (themeFromCookie && acceptedThemes.includes(themeFromCookie)) {\n return themeFromCookie\n }\n\n const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme') as Theme\n\n if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {\n return themeFromHeader\n }\n\n return defaultTheme\n}\n"],"mappings":"AAGA,SAASA,YAAY,QAAoB;AAQzC,MAAMC,cAAA,GAA0B,CAAC,QAAQ,QAAQ;AAEjD,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAO,CAA0B;EAClF,IAAIF,MAAA,CAAOG,KAAK,CAACC,KAAK,KAAK,SAASN,cAAA,CAAeO,QAAQ,CAACL,MAAA,CAAOG,KAAK,CAACC,KAAK,GAAG;IAC/E,OAAOJ,MAAA,CAAOG,KAAK,CAACC,KAAK;EAC3B;EAEA,MAAME,WAAA,GAAcL,OAAA,CAAQM,GAAG,CAAC,GAAGP,MAAA,CAAOQ,YAAY,IAAI,iBAAiB;EAE3E,MAAMC,eAAA,GACJ,OAAOH,WAAA,KAAgB,WAAWA,WAAA,GAAcA,WAAA,EAAaI,KAAA;EAG/D,IAAID,eAAA,IAAmBX,cAAA,CAAeO,QAAQ,CAACI,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,MAAME,eAAA,GAAkBT,OAAA,CAAQK,GAAG,CAAC;EAEpC,IAAII,eAAA,IAAmBb,cAAA,CAAeO,QAAQ,CAACM,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,OAAOd,YAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,SAAS,CAAA;AAQtF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,eAAO,MAAM,QAAQ,4FAMlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA4I/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,SAAS,CAAA;AAOtF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,eAAO,MAAM,QAAQ,4FAMlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA0I/B,CAAA"}
@@ -1,10 +1,9 @@
1
- import { initI18n } from '@payloadcms/translations';
2
1
  import { findLocaleFromCode } from '@payloadcms/ui/shared';
3
2
  import { headers as getHeaders } from 'next/headers.js';
4
3
  import { createLocalReq, isEntityHidden, parseCookies } from 'payload';
5
4
  import * as qs from 'qs-esm';
6
5
  import { getPayloadHMR } from '../getPayloadHMR.js';
7
- import { getRequestLanguage } from '../getRequestLanguage.js';
6
+ import { initReq } from '../initReq.js';
8
7
  import { handleAdminPage } from './handleAdminPage.js';
9
8
  import { handleAuthRedirect } from './handleAuthRedirect.js';
10
9
  export const initPage = async ({
@@ -19,38 +18,27 @@ export const initPage = async ({
19
18
  config: configPromise,
20
19
  importMap
21
20
  });
21
+ const queryString = `${qs.stringify(searchParams ?? {}, {
22
+ addQueryPrefix: true
23
+ })}`;
22
24
  const {
23
25
  collections,
24
26
  globals,
25
- i18n: i18nConfig,
26
27
  localization,
27
28
  routes: {
28
29
  admin: adminRoute
29
30
  }
30
31
  } = payload.config;
31
- const queryString = `${qs.stringify(searchParams ?? {}, {
32
- addQueryPrefix: true
33
- })}`;
34
32
  const cookies = parseCookies(headers);
35
- const language = getRequestLanguage({
36
- config: payload.config,
37
- cookies,
38
- headers
39
- });
40
- const i18n = await initI18n({
41
- config: i18nConfig,
42
- context: 'client',
43
- language
44
- });
45
- const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
46
- if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
47
- acc.push({
48
- label: languageConfig.translations.general.thisLanguage,
49
- value: language
50
- });
51
- }
52
- return acc;
53
- }, []);
33
+ const {
34
+ i18n,
35
+ permissions,
36
+ user
37
+ } = await initReq(payload.config);
38
+ // Ideally, we should not need to recreate the req, because
39
+ // we can get it from the above initReq.
40
+ // We just need to -overwrite- the url and query of the req
41
+ // we get above. Clone the req? We'll look into that eventually.
54
42
  const req = await createLocalReq({
55
43
  fallbackLocale: null,
56
44
  req: {
@@ -64,13 +52,15 @@ export const initPage = async ({
64
52
  url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`
65
53
  }
66
54
  }, payload);
67
- const {
68
- permissions,
69
- user
70
- } = await payload.auth({
71
- headers,
72
- req
73
- });
55
+ const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
56
+ if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
57
+ acc.push({
58
+ label: languageConfig.translations.general.thisLanguage,
59
+ value: language
60
+ });
61
+ }
62
+ return acc;
63
+ }, []);
74
64
  req.user = user;
75
65
  const localeParam = searchParams?.locale;
76
66
  let locale;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["initI18n","findLocaleFromCode","headers","getHeaders","createLocalReq","isEntityHidden","parseCookies","qs","getPayloadHMR","getRequestLanguage","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","importMap","redirectUnauthenticatedUser","route","searchParams","payload","collections","globals","i18n","i18nConfig","localization","routes","admin","adminRoute","queryString","stringify","addQueryPrefix","cookies","language","context","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","error","code","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { InitPageResult, Locale, PayloadRequest, VisibleEntities } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { getRequestLanguage } from '../getRequestLanguage.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const payload = await getPayloadHMR({ config: configPromise, importMap })\n\n const {\n collections,\n globals,\n i18n: i18nConfig,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n: I18n = await initI18n({\n config: i18nConfig,\n context: 'client',\n language,\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 req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) {\n locale = findLocaleFromCode(localization, defaultLocaleCode)\n }\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["findLocaleFromCode","headers","getHeaders","createLocalReq","isEntityHidden","parseCookies","qs","getPayloadHMR","initReq","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","importMap","redirectUnauthenticatedUser","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","localization","routes","admin","adminRoute","cookies","i18n","permissions","user","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","error","code","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, Locale, PayloadRequest, VisibleEntities } from 'payload'\n\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { initReq } from '../initReq.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const payload = await getPayloadHMR({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { i18n, permissions, user } = await initReq(payload.config)\n\n // Ideally, we should not need to recreate the req, because\n // we can get it from the above initReq.\n\n // We just need to -overwrite- the url and query of the req\n // we get above. Clone the req? We'll look into that eventually.\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) {\n locale = findLocaleFromCode(localization, defaultLocaleCode)\n }\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,cAAc,EAAEC,cAAc,EAAEC,YAAY,QAAQ;AAC7D,YAAYC,EAAA,MAAQ;AAIpB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,QAAA,GAAW,MAAAA,CAAO;EAC7BC,MAAA,EAAQC,aAAa;EACrBC,SAAS;EACTC,2BAAA,GAA8B,KAAK;EACnCC,KAAK;EACLC;AAAY,CACP;EACL,MAAMhB,OAAA,GAAUC,UAAA;EAChB,MAAMgB,OAAA,GAAU,MAAMX,aAAA,CAAc;IAAEK,MAAA,EAAQC,aAAA;IAAeC;EAAU;EACvE,MAAMK,WAAA,GAAc,GAAGb,EAAA,CAAGc,SAAS,CAACH,YAAA,IAAgB,CAAC,GAAG;IAAEI,cAAA,EAAgB;EAAK,IAAI;EAEnF,MAAM;IACJC,WAAW;IACXC,OAAO;IACPC,YAAY;IACZC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGT,OAAA,CAAQN,MAAM;EAElB,MAAMgB,OAAA,GAAUvB,YAAA,CAAaJ,OAAA;EAE7B,MAAM;IAAE4B,IAAI;IAAEC,WAAW;IAAEC;EAAI,CAAE,GAAG,MAAMvB,OAAA,CAAQU,OAAA,CAAQN,MAAM;EAEhE;EACA;EAEA;EACA;EACA,MAAMoB,GAAA,GAAM,MAAM7B,cAAA,CAChB;IACE8B,cAAA,EAAgB;IAChBD,GAAA,EAAK;MACH/B,OAAA;MACAiC,IAAA,EAAMjC,OAAA,CAAQkC,GAAG,CAAC;MAClBN,IAAA;MACAO,KAAA,EAAO9B,EAAA,CAAG+B,KAAK,CAAClB,WAAA,EAAa;QAC3BmB,KAAA,EAAO;QACPC,iBAAA,EAAmB;MACrB;MACAC,GAAA,EAAK,GAAGtB,OAAA,CAAQN,MAAM,CAAC6B,SAAS,GAAGzB,KAAA,GAAQC,YAAA,GAAeE,WAAA,GAAc;IAC1E;EACF,GACAD,OAAA;EAGF,MAAMwB,eAAA,GAAkBC,MAAA,CAAOC,OAAO,CAAC1B,OAAA,CAAQN,MAAM,CAACiB,IAAI,CAACgB,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACzF,CAACC,GAAA,EAAK,CAACC,QAAA,EAAUC,cAAA,CAAe;IAC9B,IAAIN,MAAA,CAAOO,IAAI,CAAChC,OAAA,CAAQN,MAAM,CAACiB,IAAI,CAACgB,kBAAkB,EAAEM,QAAQ,CAACH,QAAA,GAAW;MAC1ED,GAAA,CAAIK,IAAI,CAAC;QACPC,KAAA,EAAOJ,cAAA,CAAeK,YAAY,CAACC,OAAO,CAACC,YAAY;QACvDC,KAAA,EAAOT;MACT;IACF;IAEA,OAAOD,GAAA;EACT,GACA,EAAE;EAGJf,GAAA,CAAID,IAAI,GAAGA,IAAA;EAEX,MAAM2B,WAAA,GAAczC,YAAA,EAAc0C,MAAA;EAClC,IAAIA,MAAA;EAEJ,IAAInC,YAAA,EAAc;IAChB,MAAMoC,iBAAA,GAAoBpC,YAAA,CAAaqC,aAAa,GAAGrC,YAAA,CAAaqC,aAAa,GAAG;IACpF,IAAIC,UAAA,GAAqBJ,WAAA;IAEzB,IAAI,CAACI,UAAA,EAAY;MACf,IAAI;QACFA,UAAA,GAAa,MAAM5C,OAAA,CAChB6C,IAAI,CAAC;UACJC,UAAA,EAAY;UACZ1B,KAAA,EAAO;UACP2B,KAAA,EAAO;UACPlC,IAAA;UACAmC,KAAA,EAAO;YACLC,GAAA,EAAK,CACH;cACE,mBAAmB;gBACjBC,MAAA,EAAQlD,OAAA,CAAQN,MAAM,CAACc,KAAK,CAACK;cAC/B;YACF,GACA;cACE,cAAc;gBACZqC,MAAA,EAAQrC,IAAA,CAAKsC;cACf;YACF,GACA;cACEC,GAAA,EAAK;gBACHF,MAAA,EAAQ;cACV;YACF;UAEJ;QACF,IACEG,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE,EAAEhB,KAAA;MACnC,EAAE,OAAOiB,KAAA,EAAO,CAAC,EAAE;IACrB;IAEAf,MAAA,GAAS3D,kBAAA,CAAmBwB,YAAA,EAAcsC,UAAA;IAE1C,IAAI,CAACH,MAAA,EAAQ;MACXA,MAAA,GAAS3D,kBAAA,CAAmBwB,YAAA,EAAcoC,iBAAA;IAC5C;IACA5B,GAAA,CAAI2B,MAAM,GAAGA,MAAA,CAAOgB,IAAI;EAC1B;EAEA,MAAMC,eAAA,GAAmC;IACvCtD,WAAA,EAAaA,WAAA,CACVuD,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEpD,KAAA,EAAO;QAAEqD;MAAM;IAAE,CAAE,KAAM,CAAC3E,cAAA,CAAe;MAAE2E,MAAA;MAAQhD;IAAK,KAAK+C,IAAA,GAAO,MACjFE,MAAM,CAACC,OAAA;IACV1D,OAAA,EAASA,OAAA,CACNsD,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEpD,KAAA,EAAO;QAAEqD;MAAM;IAAE,CAAE,KAAM,CAAC3E,cAAA,CAAe;MAAE2E,MAAA;MAAQhD;IAAK,KAAK+C,IAAA,GAAO,MACjFE,MAAM,CAACC,OAAA;EACZ;EAEA,IAAIlE,2BAAA,IAA+B,CAACgB,IAAA,EAAM;IACxCrB,kBAAA,CAAmB;MACjBE,MAAA,EAAQM,OAAA,CAAQN,MAAM;MACtBG,2BAAA;MACAC,KAAA;MACAC;IACF;EACF;EAEA,MAAM;IAAEiE,gBAAgB;IAAEC,KAAK;IAAEC;EAAY,CAAE,GAAG3E,eAAA,CAAgB;IAChEkB,UAAA;IACAf,MAAA,EAAQM,OAAA,CAAQN,MAAM;IACtBkB,WAAA;IACAd;EACF;EAEA,OAAO;IACLkE,gBAAA;IACAtD,OAAA;IACAuD,KAAA;IACAC,YAAA;IACA1C,eAAA;IACAiB,MAAA;IACA7B,WAAA;IACAE,GAAA;IACAsB,YAAA,EAAczB,IAAA,CAAKyB,YAAY;IAC/BsB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { PayloadRequest, Permissions, SanitizedConfig, User } from 'payload';
3
+ type Result = {
4
+ i18n: I18nClient;
5
+ permissions: Permissions;
6
+ req: PayloadRequest;
7
+ user: User;
8
+ };
9
+ export declare const initReq: (config: SanitizedConfig) => Promise<Result>;
10
+ export {};
11
+ //# sourceMappingURL=initReq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAUjF,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,eAAO,MAAM,OAAO,WAAiC,eAAe,KAAG,OAAO,CAAC,MAAM,CAuCnF,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { initI18n } from '@payloadcms/translations';
2
+ import { headers as getHeaders } from 'next/headers.js';
3
+ import { createLocalReq, parseCookies } from 'payload';
4
+ import { cache } from 'react';
5
+ import { getPayloadHMR } from './getPayloadHMR.js';
6
+ import { getRequestLanguage } from './getRequestLanguage.js';
7
+ export const initReq = cache(async function (config) {
8
+ const payload = await getPayloadHMR({
9
+ config
10
+ });
11
+ const headers = getHeaders();
12
+ const cookies = parseCookies(headers);
13
+ const languageCode = getRequestLanguage({
14
+ config,
15
+ cookies,
16
+ headers
17
+ });
18
+ const i18n = await initI18n({
19
+ config: config.i18n,
20
+ context: 'client',
21
+ language: languageCode
22
+ });
23
+ const req = await createLocalReq({
24
+ fallbackLocale: 'null',
25
+ req: {
26
+ headers,
27
+ host: headers.get('host'),
28
+ i18n,
29
+ url: `${payload.config.serverURL}`
30
+ }
31
+ }, payload);
32
+ const {
33
+ permissions,
34
+ user
35
+ } = await payload.auth({
36
+ headers,
37
+ req
38
+ });
39
+ return {
40
+ i18n,
41
+ permissions,
42
+ req,
43
+ user
44
+ };
45
+ });
46
+ //# sourceMappingURL=initReq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","parseCookies","cache","getPayloadHMR","getRequestLanguage","initReq","config","payload","cookies","languageCode","i18n","context","language","req","fallbackLocale","host","get","url","serverURL","permissions","user","auth"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { PayloadRequest, Permissions, SanitizedConfig, User } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, parseCookies } from 'payload'\nimport { cache } from 'react'\n\nimport { getPayloadHMR } from './getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Result = {\n i18n: I18nClient\n permissions: Permissions\n req: PayloadRequest\n user: User\n}\n\nexport const initReq = cache(async function (config: SanitizedConfig): Promise<Result> {\n const payload = await getPayloadHMR({ config })\n\n const headers = 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 const req = await createLocalReq(\n {\n fallbackLocale: 'null',\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n url: `${payload.config.serverURL}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n return {\n i18n,\n permissions,\n req,\n user,\n }\n})\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,cAAc,EAAEC,YAAY,QAAQ;AAC7C,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AASnC,OAAO,MAAMC,OAAA,GAAUH,KAAA,CAAM,gBAAgBI,MAAuB;EAClE,MAAMC,OAAA,GAAU,MAAMJ,aAAA,CAAc;IAAEG;EAAO;EAE7C,MAAMR,OAAA,GAAUC,UAAA;EAChB,MAAMS,OAAA,GAAUP,YAAA,CAAaH,OAAA;EAE7B,MAAMW,YAAA,GAAeL,kBAAA,CAAmB;IACtCE,MAAA;IACAE,OAAA;IACAV;EACF;EAEA,MAAMY,IAAA,GAAmB,MAAMb,QAAA,CAAS;IACtCS,MAAA,EAAQA,MAAA,CAAOI,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUH;EACZ;EAEA,MAAMI,GAAA,GAAM,MAAMb,cAAA,CAChB;IACEc,cAAA,EAAgB;IAChBD,GAAA,EAAK;MACHf,OAAA;MACAiB,IAAA,EAAMjB,OAAA,CAAQkB,GAAG,CAAC;MAClBN,IAAA;MACAO,GAAA,EAAK,GAAGV,OAAA,CAAQD,MAAM,CAACY,SAAS;IAClC;EACF,GACAX,OAAA;EAGF,MAAM;IAAEY,WAAW;IAAEC;EAAI,CAAE,GAAG,MAAMb,OAAA,CAAQc,IAAI,CAAC;IAAEvB,OAAA;IAASe;EAAI;EAEhE,OAAO;IACLH,IAAA;IACAS,WAAA;IACAN,GAAA;IACAO;EACF;AACF","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  import type { I18n } from '@payloadcms/translations';
2
- import type { LanguageOptions } from 'payload';
2
+ import type { Config, LanguageOptions } from 'payload';
3
3
  import React from 'react';
4
4
  import './index.scss';
5
5
  export declare const Settings: React.FC<{
6
6
  readonly className?: string;
7
7
  readonly i18n: I18n;
8
8
  readonly languageOptions: LanguageOptions;
9
+ readonly theme: Config['admin']['theme'];
9
10
  }>;
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;CAC1C,CAaA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAGtD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;CACzC,CAaA,CAAA"}
@@ -8,7 +8,8 @@ export const Settings = props => {
8
8
  const {
9
9
  className,
10
10
  i18n,
11
- languageOptions
11
+ languageOptions,
12
+ theme
12
13
  } = props;
13
14
  return /*#__PURE__*/_jsxs("div", {
14
15
  className: [baseClass, className].filter(Boolean).join(' '),
@@ -23,7 +24,7 @@ export const Settings = props => {
23
24
  }), /*#__PURE__*/_jsx(LanguageSelector, {
24
25
  languageOptions: languageOptions
25
26
  })]
26
- }), /*#__PURE__*/_jsx(ToggleTheme, {})]
27
+ }), theme === 'all' && /*#__PURE__*/_jsx(ToggleTheme, {})]
27
28
  });
28
29
  };
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["FieldLabel","React","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","_jsxs","filter","Boolean","join","_jsx","t","field","htmlFor","label"],"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { LanguageOptions } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport './index.scss'\nimport { LanguageSelector } from './LanguageSelector.js'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n}> = (props) => {\n const { className, i18n, languageOptions } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel field={null} htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n <ToggleTheme />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAE5B,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAIPC,KAAA;EACJ,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAe,CAAE,GAAGH,KAAA;EAE7C,oBACEI,KAAA,CAAC;IAAIH,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACI,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;4BAC1DC,IAAA,CAAC;gBAAIN,IAAA,CAAKO,CAAC,CAAC;qBACZL,KAAA,CAAC;MAAIH,SAAA,EAAW,GAAGH,SAAA,YAAqB;8BACtCU,IAAA,CAACd,UAAA;QAAWgB,KAAA,EAAO;QAAMC,OAAA,EAAQ;QAAkBC,KAAA,EAAOV,IAAA,CAAKO,CAAC,CAAC;uBACjED,IAAA,CAACX,gBAAA;QAAiBM,eAAA,EAAiBA;;qBAErCK,IAAA,CAACZ,WAAA;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["FieldLabel","React","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","theme","_jsxs","filter","Boolean","join","_jsx","t","field","htmlFor","label"],"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Config, LanguageOptions } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport './index.scss'\nimport { LanguageSelector } from './LanguageSelector.js'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n readonly theme: Config['admin']['theme']\n}> = (props) => {\n const { className, i18n, languageOptions, theme } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel field={null} htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n {theme === 'all' && <ToggleTheme />}\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAE5B,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAKPC,KAAA;EACJ,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,eAAe;IAAEC;EAAK,CAAE,GAAGJ,KAAA;EAEpD,oBACEK,KAAA,CAAC;IAAIJ,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACK,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;4BAC1DC,IAAA,CAAC;gBAAIP,IAAA,CAAKQ,CAAC,CAAC;qBACZL,KAAA,CAAC;MAAIJ,SAAA,EAAW,GAAGH,SAAA,YAAqB;8BACtCW,IAAA,CAACf,UAAA;QAAWiB,KAAA,EAAO;QAAMC,OAAA,EAAQ;QAAkBC,KAAA,EAAOX,IAAA,CAAKQ,CAAC,CAAC;uBACjED,IAAA,CAACZ,gBAAA;QAAiBM,eAAA,EAAiBA;;QAEpCC,KAAA,KAAU,sBAASK,IAAA,CAACb,WAAA;;AAG3B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8F5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkG5C,CAAA"}
@@ -36,6 +36,7 @@ export const Account = async ({
36
36
  Account: CustomAccountComponent
37
37
  } = {}
38
38
  } = {},
39
+ theme,
39
40
  user: userSlug
40
41
  },
41
42
  routes: {
@@ -82,7 +83,8 @@ export const Account = async ({
82
83
  return /*#__PURE__*/_jsx(DocumentInfoProvider, {
83
84
  AfterFields: /*#__PURE__*/_jsx(Settings, {
84
85
  i18n: i18n,
85
- languageOptions: languageOptions
86
+ languageOptions: languageOptions,
87
+ theme: theme
86
88
  }),
87
89
  apiURL: `${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`,
88
90
  collectionSlug: userSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","RenderComponent","getCreateMappedComponent","notFound","React","DocumentHeader","getDocumentData","getDocumentPermissions","EditView","AccountClient","Settings","generateAccountMetadata","Account","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","components","views","CustomAccountComponent","userSlug","routes","api","serverURL","collectionConfig","collections","find","collection","slug","id","docPermissions","hasPublishPermission","hasSavePermission","data","formState","createMappedComponent","importMap","serverProps","routeSegments","mappedAccountComponent","Component","undefined","_jsx","AfterFields","apiURL","collectionSlug","toString","initialData","initialState","isEditing","_jsxs","depth","hideTabs","mappedComponent"],"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n RenderComponent,\n} from '@payloadcms/ui'\nimport { getCreateMappedComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { EditView } from '../Edit/index.js'\nimport { AccountClient } from './index.client.js'\nimport { Settings } from './Settings/index.js'\n\nexport { generateAccountMetadata } from './meta.js'\n\nexport const Account: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { components: { views: { Account: CustomAccountComponent } = {} } = {}, user: userSlug },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = config.collections.find((collection) => collection.slug === userSlug)\n\n if (collectionConfig && user?.id) {\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data: user,\n req,\n })\n\n const { data, formState } = await getDocumentData({\n id: user.id,\n collectionConfig,\n locale,\n req,\n })\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: [],\n searchParams,\n user,\n },\n })\n\n const mappedAccountComponent = createMappedComponent(\n CustomAccountComponent?.Component,\n undefined,\n EditView,\n 'CustomAccountComponent.Component',\n )\n\n return (\n <DocumentInfoProvider\n AfterFields={<Settings i18n={i18n} languageOptions={languageOptions} />}\n apiURL={`${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`}\n collectionSlug={userSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id.toString()}\n initialData={data}\n initialState={formState}\n isEditing\n >\n <EditDepthProvider depth={1}>\n <DocumentHeader\n collectionConfig={collectionConfig}\n hideTabs\n i18n={i18n}\n payload={payload}\n permissions={permissions}\n />\n <HydrateAuthProvider permissions={permissions} />\n <RenderComponent mappedComponent={mappedAccountComponent} />\n <AccountClient />\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","RenderComponent","getCreateMappedComponent","notFound","React","DocumentHeader","getDocumentData","getDocumentPermissions","EditView","AccountClient","Settings","generateAccountMetadata","Account","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","components","views","CustomAccountComponent","theme","userSlug","routes","api","serverURL","collectionConfig","collections","find","collection","slug","id","docPermissions","hasPublishPermission","hasSavePermission","data","formState","createMappedComponent","importMap","serverProps","routeSegments","mappedAccountComponent","Component","undefined","_jsx","AfterFields","apiURL","collectionSlug","toString","initialData","initialState","isEditing","_jsxs","depth","hideTabs","mappedComponent"],"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n RenderComponent,\n} from '@payloadcms/ui'\nimport { getCreateMappedComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { EditView } from '../Edit/index.js'\nimport { AccountClient } from './index.client.js'\nimport { Settings } from './Settings/index.js'\n\nexport { generateAccountMetadata } from './meta.js'\n\nexport const Account: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: {\n components: { views: { Account: CustomAccountComponent } = {} } = {},\n theme,\n user: userSlug,\n },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = config.collections.find((collection) => collection.slug === userSlug)\n\n if (collectionConfig && user?.id) {\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data: user,\n req,\n })\n\n const { data, formState } = await getDocumentData({\n id: user.id,\n collectionConfig,\n locale,\n req,\n })\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: [],\n searchParams,\n user,\n },\n })\n\n const mappedAccountComponent = createMappedComponent(\n CustomAccountComponent?.Component,\n undefined,\n EditView,\n 'CustomAccountComponent.Component',\n )\n\n return (\n <DocumentInfoProvider\n AfterFields={<Settings i18n={i18n} languageOptions={languageOptions} theme={theme} />}\n apiURL={`${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`}\n collectionSlug={userSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id.toString()}\n initialData={data}\n initialState={formState}\n isEditing\n >\n <EditDepthProvider depth={1}>\n <DocumentHeader\n collectionConfig={collectionConfig}\n hideTabs\n i18n={i18n}\n payload={payload}\n permissions={permissions}\n />\n <HydrateAuthProvider permissions={permissions} />\n <RenderComponent mappedComponent={mappedAccountComponent} />\n <AccountClient />\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,SAAS,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAa1F,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CA+DA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,SAAS,EACT,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAuEA,CAAA"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { ConfirmPasswordField, Form, FormSubmit, PasswordField, RenderFields, useConfig, useTranslation } from '@payloadcms/ui';
5
+ import { ConfirmPasswordField, Form, FormSubmit, PasswordField, RenderFields, useAuth, useConfig, useTranslation } from '@payloadcms/ui';
6
6
  import { getFormState } from '@payloadcms/ui/shared';
7
7
  import React from 'react';
8
8
  import { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js';
9
9
  export const CreateFirstUserClient = t0 => {
10
- const $ = _c(13);
10
+ const $ = _c(16);
11
11
  const {
12
12
  initialState,
13
13
  loginWithUsername,
@@ -28,18 +28,23 @@ export const CreateFirstUserClient = t0 => {
28
28
  const {
29
29
  t
30
30
  } = useTranslation();
31
+ const {
32
+ setUser
33
+ } = useAuth();
31
34
  let t3;
32
- if ($[0] !== userSlug || $[1] !== getEntityConfig || $[2] !== apiRoute || $[3] !== serverURL || $[4] !== loginWithUsername || $[5] !== t || $[6] !== initialState || $[7] !== admin) {
35
+ if ($[0] !== userSlug || $[1] !== getEntityConfig || $[2] !== apiRoute || $[3] !== serverURL || $[4] !== setUser || $[5] !== loginWithUsername || $[6] !== t || $[7] !== initialState || $[8] !== admin) {
33
36
  const collectionConfig = getEntityConfig({
34
37
  collectionSlug: userSlug
35
38
  });
36
39
  let t4;
37
- if ($[9] !== apiRoute || $[10] !== userSlug || $[11] !== serverURL) {
40
+ if ($[10] !== apiRoute || $[11] !== userSlug || $[12] !== serverURL) {
38
41
  t4 = async t5 => {
39
42
  const {
40
43
  formState: prevFormState
41
44
  } = t5;
42
- return getFormState({
45
+ const {
46
+ state
47
+ } = await getFormState({
43
48
  apiRoute,
44
49
  body: {
45
50
  collectionSlug: userSlug,
@@ -49,20 +54,33 @@ export const CreateFirstUserClient = t0 => {
49
54
  },
50
55
  serverURL
51
56
  });
57
+ return state;
52
58
  };
53
- $[9] = apiRoute;
54
- $[10] = userSlug;
55
- $[11] = serverURL;
56
- $[12] = t4;
59
+ $[10] = apiRoute;
60
+ $[11] = userSlug;
61
+ $[12] = serverURL;
62
+ $[13] = t4;
57
63
  } else {
58
- t4 = $[12];
64
+ t4 = $[13];
59
65
  }
60
66
  const onChange = t4;
67
+ let t5;
68
+ if ($[14] !== setUser) {
69
+ t5 = data => {
70
+ setUser(data.user);
71
+ };
72
+ $[14] = setUser;
73
+ $[15] = t5;
74
+ } else {
75
+ t5 = $[15];
76
+ }
77
+ const handleFirstRegister = t5;
61
78
  t3 = _jsxs(Form, {
62
79
  action: `${serverURL}${apiRoute}/${userSlug}/first-register`,
63
80
  initialState,
64
81
  method: "POST",
65
82
  onChange: [onChange],
83
+ onSuccess: handleFirstRegister,
66
84
  redirect: admin,
67
85
  validationOperation: "create",
68
86
  children: [_jsx(RenderEmailAndUsernameFields, {
@@ -93,13 +111,14 @@ export const CreateFirstUserClient = t0 => {
93
111
  $[1] = getEntityConfig;
94
112
  $[2] = apiRoute;
95
113
  $[3] = serverURL;
96
- $[4] = loginWithUsername;
97
- $[5] = t;
98
- $[6] = initialState;
99
- $[7] = admin;
100
- $[8] = t3;
114
+ $[4] = setUser;
115
+ $[5] = loginWithUsername;
116
+ $[6] = t;
117
+ $[7] = initialState;
118
+ $[8] = admin;
119
+ $[9] = t3;
101
120
  } else {
102
- t3 = $[8];
121
+ t3 = $[9];
103
122
  }
104
123
  return t3;
105
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","ConfirmPasswordField","Form","FormSubmit","PasswordField","RenderFields","useConfig","useTranslation","getFormState","React","RenderEmailAndUsernameFields","CreateFirstUserClient","t0","$","initialState","loginWithUsername","userSlug","config","t1","getEntityConfig","routes","t2","serverURL","admin","api","apiRoute","t","t3","collectionConfig","collectionSlug","t4","t5","formState","prevFormState","body","operation","schemaPath","onChange","_jsxs","action","method","redirect","validationOperation","children","_jsx","className","readOnly","autoComplete","field","name","label","required","fields","forceRender","path","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FormState, LoginWithUsernameOptions } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n type FormProps,\n FormSubmit,\n PasswordField,\n RenderFields,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js'\n\nexport const CreateFirstUserClient: React.FC<{\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { t } = useTranslation()\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug }) as ClientCollectionConfig\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: userSlug,\n formState: prevFormState,\n operation: 'create',\n schemaPath: `_${userSlug}.auth`,\n },\n serverURL,\n }),\n [apiRoute, userSlug, serverURL],\n )\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={initialState}\n method=\"POST\"\n onChange={[onChange]}\n redirect={admin}\n validationOperation=\"create\"\n >\n <RenderEmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n />\n <PasswordField\n autoComplete={'off'}\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SACEC,oBAAoB,EACpBC,IAAI,EAEJC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,SAAS,EACTC,cAAc,QACT;AACP,SAASC,YAAY,QAAQ;AAC7B,OAAOC,KAAA,MAAW;AAElB,SAASC,4BAA4B,QAAQ;AAE7C,OAAO,MAAMC,qBAAA,GAIRC,EAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EAAC;IAAAc,YAAA;IAAAC,iBAAA;IAAAC;EAAA,IAAAJ,EAA6C;EACjD;IAAAK,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAMIb,SAAA;EALM;IAAAc,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAGP;EAFS;IAAAK,KAAA;IAAAC,GAAA,EAAAC;EAAA,IAAAJ,EAAwB;EAMpC;IAAAK;EAAA,IAAcnB,cAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAY,QAAA,IAAAZ,CAAA,QAAAS,SAAA,IAAAT,CAAA,QAAAE,iBAAA,IAAAF,CAAA,QAAAa,CAAA,IAAAb,CAAA,QAAAC,YAAA,IAAAD,CAAA,QAAAU,KAAA;IAEd,MAAAK,gBAAA,GAAyBT,eAAA;MAAAU,cAAA,EAAkCb;IAAA,CAAS;IAAA,IAAAc,EAAA;IAAA,IAAAjB,CAAA,QAAAY,QAAA,IAAAZ,CAAA,SAAAG,QAAA,IAAAH,CAAA,SAAAS,SAAA;MAGlEQ,EAAA,SAAAC,EAAA;QAAO;UAAAC,SAAA,EAAAC;QAAA,IAAAF,EAA4B;QAAA,OACjCvB,YAAA;UAAAiB,QAAA;UAAAS,IAAA;YAAAL,cAAA,EAGoBb,QAAA;YAAAgB,SAAA,EACLC,aAAA;YAAAE,SAAA,EACA;YAAAC,UAAA,EACC,IAAIpB,QAAA;UAAe;UAAAM;QAAA,CAGnC;MAAA;MAAAT,CAAA,MAAAY,QAAA;MAAAZ,CAAA,OAAAG,QAAA;MAAAH,CAAA,OAAAS,SAAA;MAAAT,CAAA,OAAAiB,EAAA;IAAA;MAAAA,EAAA,GAAAjB,CAAA;IAAA;IAXJ,MAAAwB,QAAA,GAA2CP,EAYV;IAI/BH,EAAA,GAAAW,KAAA,CAAApC,IAAA;MAAAqC,MAAA,EACU,GAAGjB,SAAA,GAAYG,QAAA,IAAYT,QAAA,iBAAyB;MAAAF,YAAA;MAAA0B,MAAA,EAErD;MAAAH,QAAA,GACIA,QAAA;MAAAI,QAAA,EACDlB,KAAA;MAAAmB,mBAAA,EACU;MAAAC,QAAA,GAEpBC,IAAA,CAAAlC,4BAAA;QAAAmC,SAAA,EACY;QAAA9B,iBAAA;QAAAoB,SAAA,EAEA;QAAAW,QAAA;MAAA,C,GAGZF,IAAA,CAAAxC,aAAA;QAAA2C,YAAA,EACgB;QAAAC,KAAA;UAAAC,IAAA,EAEN;UAAAC,KAAA,EACCxB,CAAA,CAAE;UAAAyB,QAAA;QAAA;MAAA,C,GAIbP,IAAA,CAAA3C,oBAAA,IAAC,GACD2C,IAAA,CAAAvC,YAAA;QAAA+C,MAAA,EACUxB,gBAAA,CAAAwB,MAAA;QAAAC,WAAA;QAAAlB,SAAA,EAEE;QAAAmB,IAAA,EACL;QAAAR,QAAA;QAAAV,UAAA,EAEOpB;MAAA,C,GAEd4B,IAAA,CAAAzC,UAAA;QAAAoD,IAAA,EAAiB;QAAAZ,QAAA,EAASjB,CAAA,CAAE;MAAA,C;;;;;;;;;;;;;;SA/B9BC,E;CAkCJ","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","ConfirmPasswordField","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useTranslation","getFormState","React","RenderEmailAndUsernameFields","CreateFirstUserClient","t0","$","initialState","loginWithUsername","userSlug","config","t1","getEntityConfig","routes","t2","serverURL","admin","api","apiRoute","t","setUser","t3","collectionConfig","collectionSlug","t4","t5","formState","prevFormState","state","body","operation","schemaPath","onChange","data","user","handleFirstRegister","_jsxs","action","method","onSuccess","redirect","validationOperation","children","_jsx","className","readOnly","autoComplete","field","name","label","required","fields","forceRender","path","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientUser,\n FormState,\n LoginWithUsernameOptions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n type FormProps,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js'\n\nexport const CreateFirstUserClient: React.FC<{\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug }) as ClientCollectionConfig\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState }) => {\n const { state } = await getFormState({\n apiRoute,\n body: {\n collectionSlug: userSlug,\n formState: prevFormState,\n operation: 'create',\n schemaPath: `_${userSlug}.auth`,\n },\n serverURL,\n })\n return state\n },\n [apiRoute, userSlug, serverURL],\n )\n\n const handleFirstRegister = (data: { user: ClientUser }) => {\n setUser(data.user)\n }\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={initialState}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <RenderEmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n />\n <PasswordField\n autoComplete={'off'}\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAQA,SACEC,oBAAoB,EACpBC,IAAI,EAEJC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,OAAO,EACPC,SAAS,EACTC,cAAc,QACT;AACP,SAASC,YAAY,QAAQ;AAC7B,OAAOC,KAAA,MAAW;AAElB,SAASC,4BAA4B,QAAQ;AAE7C,OAAO,MAAMC,qBAAA,GAIRC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAAC;IAAAe,YAAA;IAAAC,iBAAA;IAAAC;EAAA,IAAAJ,EAA6C;EACjD;IAAAK,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAMIb,SAAA;EALM;IAAAc,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAGP;EAFS;IAAAK,KAAA;IAAAC,GAAA,EAAAC;EAAA,IAAAJ,EAAwB;EAMpC;IAAAK;EAAA,IAAcnB,cAAA;EACd;IAAAoB;EAAA,IAAoBtB,OAAA;EAAA,IAAAuB,EAAA;EAAA,IAAAf,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAY,QAAA,IAAAZ,CAAA,QAAAS,SAAA,IAAAT,CAAA,QAAAc,OAAA,IAAAd,CAAA,QAAAE,iBAAA,IAAAF,CAAA,QAAAa,CAAA,IAAAb,CAAA,QAAAC,YAAA,IAAAD,CAAA,QAAAU,KAAA;IAEpB,MAAAM,gBAAA,GAAyBV,eAAA;MAAAW,cAAA,EAAkCd;IAAA,CAAS;IAAA,IAAAe,EAAA;IAAA,IAAAlB,CAAA,SAAAY,QAAA,IAAAZ,CAAA,SAAAG,QAAA,IAAAH,CAAA,SAAAS,SAAA;MAGlES,EAAA,SAAAC,EAAA;QAAO;UAAAC,SAAA,EAAAC;QAAA,IAAAF,EAA4B;QACjC;UAAAG;QAAA,UAAwB3B,YAAA;UAAAiB,QAAA;UAAAW,IAAA;YAAAN,cAAA,EAGJd,QAAA;YAAAiB,SAAA,EACLC,aAAA;YAAAG,SAAA,EACA;YAAAC,UAAA,EACC,IAAItB,QAAA;UAAe;UAAAM;QAAA,CAGnC;QAAA,OACOa,KAAA;MAAA;MACTtB,CAAA,OAAAY,QAAA;MAAAZ,CAAA,OAAAG,QAAA;MAAAH,CAAA,OAAAS,SAAA;MAAAT,CAAA,OAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAbF,MAAA0B,QAAA,GAA2CR,EAcV;IAAA,IAAAC,EAAA;IAAA,IAAAnB,CAAA,SAAAc,OAAA;MAGLK,EAAA,GAAAQ,IAAA;QAC1Bb,OAAA,CAAQa,IAAA,CAAAC,IAAS;MAAA;MACnB5B,CAAA,OAAAc,OAAA;MAAAd,CAAA,OAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IAFA,MAAA6B,mBAAA,GAA4BV,EAE5B;IAGEJ,EAAA,GAAAe,KAAA,CAAA1C,IAAA;MAAA2C,MAAA,EACU,GAAGtB,SAAA,GAAYG,QAAA,IAAYT,QAAA,iBAAyB;MAAAF,YAAA;MAAA+B,MAAA,EAErD;MAAAN,QAAA,GACIA,QAAA;MAAAO,SAAA,EACAJ,mBAAA;MAAAK,QAAA,EACDxB,KAAA;MAAAyB,mBAAA,EACU;MAAAC,QAAA,GAEpBC,IAAA,CAAAxC,4BAAA;QAAAyC,SAAA,EACY;QAAApC,iBAAA;QAAAsB,SAAA,EAEA;QAAAe,QAAA;MAAA,C,GAGZF,IAAA,CAAA/C,aAAA;QAAAkD,YAAA,EACgB;QAAAC,KAAA;UAAAC,IAAA,EAEN;UAAAC,KAAA,EACC9B,CAAA,CAAE;UAAA+B,QAAA;QAAA;MAAA,C,GAIbP,IAAA,CAAAlD,oBAAA,IAAC,GACDkD,IAAA,CAAA9C,YAAA;QAAAsD,MAAA,EACU7B,gBAAA,CAAA6B,MAAA;QAAAC,WAAA;QAAAtB,SAAA,EAEE;QAAAuB,IAAA,EACL;QAAAR,QAAA;QAAAd,UAAA,EAEOtB;MAAA,C,GAEdkC,IAAA,CAAAhD,UAAA;QAAA2D,IAAA,EAAiB;QAAAZ,QAAA,EAASvB,CAAA,CAAE;MAAA,C;;;;;;;;;;;;;;;SAhC9BE,E;CAmCJ","ignoreList":[]}
@@ -1,8 +1,15 @@
1
1
  import type { groupNavItems } from '@payloadcms/ui/shared';
2
- import type { Permissions, ServerProps, VisibleEntities } from 'payload';
2
+ import type { ClientUser, Permissions, ServerProps, VisibleEntities } from 'payload';
3
3
  import React from 'react';
4
4
  import './index.scss';
5
5
  export type DashboardProps = {
6
+ globalData: Array<{
7
+ data: {
8
+ _isLocked: boolean;
9
+ _userEditing: ClientUser | null;
10
+ };
11
+ slug: string;
12
+ }>;
6
13
  Link: React.ComponentType<any>;
7
14
  navGroups?: ReturnType<typeof groupNavItems>;
8
15
  permissions: Permissions;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUxE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IAC5C,WAAW,EAAE,WAAW,CAAA;IACxB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4IrD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUpF,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClG,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IAC5C,WAAW,EAAE,WAAW,CAAA;IACxB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0JrD,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
- import { Button, Card, Gutter, SetStepNav, SetViewActions } from '@payloadcms/ui';
3
+ import { Button, Card, Gutter, Locked, SetStepNav, SetViewActions } from '@payloadcms/ui';
4
4
  import { EntityType, formatAdminURL, getCreateMappedComponent, RenderComponent } from '@payloadcms/ui/shared';
5
5
  import React, { Fragment } from 'react';
6
6
  const baseClass = 'dashboard';
7
7
  export const DefaultDashboard = props => {
8
8
  const {
9
+ globalData,
9
10
  i18n,
10
11
  i18n: {
11
12
  t
@@ -81,6 +82,8 @@ export const DefaultDashboard = props => {
81
82
  let createHREF;
82
83
  let href;
83
84
  let hasCreatePermission;
85
+ let lockStatus = null;
86
+ let userEditing = null;
84
87
  if (type === EntityType.collection) {
85
88
  title = getTranslation(entity.labels.plural, i18n);
86
89
  buttonAriaLabel = t('general:showAllLabel', {
@@ -105,10 +108,19 @@ export const DefaultDashboard = props => {
105
108
  adminRoute,
106
109
  path: `/globals/${entity.slug}`
107
110
  });
111
+ // Find the lock status for the global
112
+ const globalLockData = globalData.find(global => global.slug === entity.slug);
113
+ if (globalLockData) {
114
+ lockStatus = globalLockData.data._isLocked;
115
+ userEditing = globalLockData.data._userEditing;
116
+ }
108
117
  }
109
118
  return /*#__PURE__*/_jsx("li", {
110
119
  children: /*#__PURE__*/_jsx(Card, {
111
- actions: hasCreatePermission && type === EntityType.collection ? /*#__PURE__*/_jsx(Button, {
120
+ actions: lockStatus && user?.id !== userEditing?.id ? /*#__PURE__*/_jsx(Locked, {
121
+ className: `${baseClass}__locked`,
122
+ user: userEditing
123
+ }) : hasCreatePermission && type === EntityType.collection ? /*#__PURE__*/_jsx(Button, {
112
124
  "aria-label": t('general:createNewLabel', {
113
125
  label: getTranslation(entity.labels.singular, i18n)
114
126
  }),