@payloadcms/next 3.0.0-canary.a5aaf21 → 3.0.0-canary.a6e7305

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 (301) hide show
  1. package/dist/cjs/withPayload.cjs +156 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -0
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -0
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
  7. package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
  8. package/dist/elements/DocumentHeader/index.scss +44 -42
  9. package/dist/elements/DocumentLocked/index.d.ts +1 -1
  10. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentLocked/index.js +24 -14
  12. package/dist/elements/DocumentLocked/index.js.map +1 -1
  13. package/dist/elements/DocumentLocked/index.scss +29 -26
  14. package/dist/elements/DocumentTakeOver/index.scss +28 -26
  15. package/dist/elements/FormHeader/index.d.ts +9 -0
  16. package/dist/elements/FormHeader/index.d.ts.map +1 -0
  17. package/dist/elements/FormHeader/index.js +20 -0
  18. package/dist/elements/FormHeader/index.js.map +1 -0
  19. package/dist/elements/FormHeader/index.scss +8 -0
  20. package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
  21. package/dist/elements/Nav/NavWrapper/index.scss +20 -18
  22. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  23. package/dist/elements/Nav/index.client.js +1 -0
  24. package/dist/elements/Nav/index.client.js.map +1 -1
  25. package/dist/elements/Nav/index.scss +127 -125
  26. package/dist/exports/routes.d.ts +1 -1
  27. package/dist/exports/routes.d.ts.map +1 -1
  28. package/dist/exports/routes.js +1 -1
  29. package/dist/exports/routes.js.map +1 -1
  30. package/dist/exports/utilities.d.ts +1 -0
  31. package/dist/exports/utilities.d.ts.map +1 -1
  32. package/dist/exports/utilities.js +1 -0
  33. package/dist/exports/utilities.js.map +1 -1
  34. package/dist/layouts/Root/index.js +6 -6
  35. package/dist/layouts/Root/index.js.map +1 -1
  36. package/dist/prod/styles.css +1 -1
  37. package/dist/routes/graphql/handler.d.ts.map +1 -1
  38. package/dist/routes/graphql/handler.js +23 -11
  39. package/dist/routes/graphql/handler.js.map +1 -1
  40. package/dist/routes/rest/auth/login.js +2 -2
  41. package/dist/routes/rest/auth/login.js.map +1 -1
  42. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  43. package/dist/routes/rest/auth/logout.js +3 -2
  44. package/dist/routes/rest/auth/logout.js.map +1 -1
  45. package/dist/routes/rest/auth/refresh.js +2 -2
  46. package/dist/routes/rest/auth/refresh.js.map +1 -1
  47. package/dist/routes/rest/auth/registerFirstUser.js +2 -2
  48. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  49. package/dist/routes/rest/auth/resetPassword.js +2 -2
  50. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  51. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  52. package/dist/routes/rest/collections/create.js +5 -1
  53. package/dist/routes/rest/collections/create.js.map +1 -1
  54. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  55. package/dist/routes/rest/collections/delete.js +8 -0
  56. package/dist/routes/rest/collections/delete.js.map +1 -1
  57. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  58. package/dist/routes/rest/collections/deleteByID.js +7 -1
  59. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  60. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  61. package/dist/routes/rest/collections/duplicate.js +5 -1
  62. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  63. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  64. package/dist/routes/rest/collections/find.js +7 -1
  65. package/dist/routes/rest/collections/find.js.map +1 -1
  66. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  67. package/dist/routes/rest/collections/findByID.js +5 -1
  68. package/dist/routes/rest/collections/findByID.js.map +1 -1
  69. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  70. package/dist/routes/rest/collections/findVersionByID.js +5 -1
  71. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  72. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  73. package/dist/routes/rest/collections/findVersions.js +7 -1
  74. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  75. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  76. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  77. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  78. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  79. package/dist/routes/rest/collections/update.js +10 -0
  80. package/dist/routes/rest/collections/update.js.map +1 -1
  81. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  82. package/dist/routes/rest/collections/updateByID.js +7 -1
  83. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  84. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  85. package/dist/routes/rest/globals/findOne.js +5 -1
  86. package/dist/routes/rest/globals/findOne.js.map +1 -1
  87. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  88. package/dist/routes/rest/globals/findVersionByID.js +5 -1
  89. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  90. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  91. package/dist/routes/rest/globals/findVersions.js +7 -1
  92. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  93. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  94. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  95. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  96. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  97. package/dist/routes/rest/globals/update.js +5 -1
  98. package/dist/routes/rest/globals/update.js.map +1 -1
  99. package/dist/routes/rest/index.d.ts +17 -12
  100. package/dist/routes/rest/index.d.ts.map +1 -1
  101. package/dist/routes/rest/index.js +90 -15
  102. package/dist/routes/rest/index.js.map +1 -1
  103. package/dist/routes/rest/og/index.js +2 -4
  104. package/dist/routes/rest/og/index.js.map +1 -1
  105. package/dist/routes/rest/routeError.d.ts +2 -7
  106. package/dist/routes/rest/routeError.d.ts.map +1 -1
  107. package/dist/routes/rest/routeError.js +33 -19
  108. package/dist/routes/rest/routeError.js.map +1 -1
  109. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +1 -1
  110. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -1
  111. package/dist/routes/rest/utilities/sanitizeJoinParams.js +9 -5
  112. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -1
  113. package/dist/routes/rest/utilities/sanitizePopulate.d.ts +3 -0
  114. package/dist/routes/rest/utilities/sanitizePopulate.d.ts.map +1 -0
  115. package/dist/routes/rest/utilities/sanitizePopulate.js +11 -0
  116. package/dist/routes/rest/utilities/sanitizePopulate.js.map +1 -0
  117. package/dist/routes/rest/utilities/sanitizeSelect.d.ts +6 -0
  118. package/dist/routes/rest/utilities/sanitizeSelect.d.ts.map +1 -0
  119. package/dist/routes/rest/utilities/sanitizeSelect.js +17 -0
  120. package/dist/routes/rest/utilities/sanitizeSelect.js.map +1 -0
  121. package/dist/scss/app.scss +166 -162
  122. package/dist/scss/colors.scss +256 -254
  123. package/dist/scss/resets.scss +9 -7
  124. package/dist/scss/toastify.scss +42 -40
  125. package/dist/scss/toasts.scss +105 -103
  126. package/dist/scss/type.scss +80 -79
  127. package/dist/templates/Default/Wrapper/index.scss +38 -36
  128. package/dist/templates/Default/index.scss +60 -58
  129. package/dist/templates/Minimal/index.scss +22 -20
  130. package/dist/utilities/getNextRequestI18n.js +2 -2
  131. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  132. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  133. package/dist/utilities/getRequestTheme.js +3 -0
  134. package/dist/utilities/getRequestTheme.js.map +1 -1
  135. package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
  136. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  137. package/dist/utilities/initPage/handleAdminPage.js +9 -21
  138. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  139. package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
  140. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  141. package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
  142. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  143. package/dist/utilities/initPage/index.d.ts +1 -1
  144. package/dist/utilities/initPage/index.d.ts.map +1 -1
  145. package/dist/utilities/initPage/index.js +27 -10
  146. package/dist/utilities/initPage/index.js.map +1 -1
  147. package/dist/utilities/initPage/isCustomAdminView.d.ts +10 -0
  148. package/dist/utilities/initPage/isCustomAdminView.d.ts.map +1 -0
  149. package/dist/utilities/initPage/isCustomAdminView.js +31 -0
  150. package/dist/utilities/initPage/isCustomAdminView.js.map +1 -0
  151. package/dist/utilities/initPage/shared.d.ts +2 -2
  152. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  153. package/dist/utilities/initPage/shared.js +19 -13
  154. package/dist/utilities/initPage/shared.js.map +1 -1
  155. package/dist/utilities/initReq.js +1 -1
  156. package/dist/utilities/initReq.js.map +1 -1
  157. package/dist/views/API/RenderJSON/index.scss +68 -66
  158. package/dist/views/API/index.scss +98 -96
  159. package/dist/views/Account/Settings/index.d.ts +2 -1
  160. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  161. package/dist/views/Account/Settings/index.js +3 -2
  162. package/dist/views/Account/Settings/index.js.map +1 -1
  163. package/dist/views/Account/Settings/index.scss +37 -35
  164. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  165. package/dist/views/Account/ToggleTheme/index.js +1 -0
  166. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  167. package/dist/views/Account/index.d.ts.map +1 -1
  168. package/dist/views/Account/index.js +4 -2
  169. package/dist/views/Account/index.js.map +1 -1
  170. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  171. package/dist/views/CreateFirstUser/index.client.js +31 -15
  172. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  173. package/dist/views/CreateFirstUser/index.scss +13 -11
  174. package/dist/views/Dashboard/Default/index.d.ts +3 -1
  175. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  176. package/dist/views/Dashboard/Default/index.js +12 -3
  177. package/dist/views/Dashboard/Default/index.js.map +1 -1
  178. package/dist/views/Dashboard/Default/index.scss +51 -49
  179. package/dist/views/Dashboard/index.d.ts.map +1 -1
  180. package/dist/views/Dashboard/index.js +31 -13
  181. package/dist/views/Dashboard/index.js.map +1 -1
  182. package/dist/views/Document/getDocumentData.js +4 -2
  183. package/dist/views/Document/getDocumentData.js.map +1 -1
  184. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  185. package/dist/views/Document/getDocumentPermissions.js +6 -5
  186. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  187. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  188. package/dist/views/Document/getViewsFromConfig.js +6 -0
  189. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  190. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  191. package/dist/views/Edit/Default/Auth/APIKey.js +2 -8
  192. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  193. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  194. package/dist/views/Edit/Default/Auth/index.js +37 -26
  195. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  196. package/dist/views/Edit/Default/Auth/index.scss +56 -54
  197. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  198. package/dist/views/Edit/Default/index.js +45 -73
  199. package/dist/views/Edit/Default/index.js.map +1 -1
  200. package/dist/views/Edit/Default/index.scss +15 -13
  201. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  202. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +9 -11
  203. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  204. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  205. package/dist/views/ForgotPassword/index.js +10 -8
  206. package/dist/views/ForgotPassword/index.js.map +1 -1
  207. package/dist/views/List/Default/index.scss +136 -134
  208. package/dist/views/List/index.d.ts.map +1 -1
  209. package/dist/views/List/index.js +1 -1
  210. package/dist/views/List/index.js.map +1 -1
  211. package/dist/views/LivePreview/IFrame/index.scss +8 -6
  212. package/dist/views/LivePreview/Preview/index.scss +32 -30
  213. package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
  214. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
  215. package/dist/views/LivePreview/Toolbar/index.scss +33 -31
  216. package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
  217. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  218. package/dist/views/LivePreview/index.client.js +221 -203
  219. package/dist/views/LivePreview/index.client.js.map +1 -1
  220. package/dist/views/LivePreview/index.scss +48 -46
  221. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  222. package/dist/views/Login/LoginForm/index.js +2 -1
  223. package/dist/views/Login/LoginForm/index.js.map +1 -1
  224. package/dist/views/Login/LoginForm/index.scss +8 -6
  225. package/dist/views/Login/index.scss +8 -6
  226. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  227. package/dist/views/Logout/LogoutClient.js +77 -55
  228. package/dist/views/Logout/LogoutClient.js.map +1 -1
  229. package/dist/views/Logout/index.scss +17 -15
  230. package/dist/views/NotFound/index.d.ts +5 -5
  231. package/dist/views/NotFound/index.d.ts.map +1 -1
  232. package/dist/views/NotFound/index.js +7 -2
  233. package/dist/views/NotFound/index.js.map +1 -1
  234. package/dist/views/NotFound/index.scss +38 -36
  235. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
  236. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
  237. package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
  238. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  239. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  240. package/dist/views/ResetPassword/index.js +19 -10
  241. package/dist/views/ResetPassword/index.js.map +1 -1
  242. package/dist/views/ResetPassword/index.scss +6 -26
  243. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  244. package/dist/views/Root/getViewFromConfig.js +1 -7
  245. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  246. package/dist/views/Root/index.d.ts +5 -5
  247. package/dist/views/Root/index.d.ts.map +1 -1
  248. package/dist/views/Root/index.js +23 -10
  249. package/dist/views/Root/index.js.map +1 -1
  250. package/dist/views/Root/meta.d.ts +5 -5
  251. package/dist/views/Root/meta.d.ts.map +1 -1
  252. package/dist/views/Root/meta.js +3 -2
  253. package/dist/views/Root/meta.js.map +1 -1
  254. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  255. package/dist/views/Unauthorized/index.js +14 -7
  256. package/dist/views/Unauthorized/index.js.map +1 -1
  257. package/dist/views/Unauthorized/index.scss +4 -31
  258. package/dist/views/Verify/index.client.d.ts +7 -0
  259. package/dist/views/Verify/index.client.d.ts.map +1 -0
  260. package/dist/views/Verify/index.client.js +46 -0
  261. package/dist/views/Verify/index.client.js.map +1 -0
  262. package/dist/views/Verify/index.d.ts.map +1 -1
  263. package/dist/views/Verify/index.js +12 -11
  264. package/dist/views/Verify/index.js.map +1 -1
  265. package/dist/views/Verify/index.scss +13 -11
  266. package/dist/views/Version/Default/index.scss +52 -50
  267. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
  268. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
  269. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
  270. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
  271. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
  272. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
  273. package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
  274. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  275. package/dist/views/Version/Restore/index.js +8 -14
  276. package/dist/views/Version/Restore/index.js.map +1 -1
  277. package/dist/views/Version/Restore/index.scss +57 -55
  278. package/dist/views/Version/SelectComparison/index.scss +12 -10
  279. package/dist/views/Version/SelectLocales/index.scss +6 -4
  280. package/dist/views/Version/index.d.ts.map +1 -1
  281. package/dist/views/Version/index.js +2 -0
  282. package/dist/views/Version/index.js.map +1 -1
  283. package/dist/views/Versions/cells/CreatedAt/index.js +1 -0
  284. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  285. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  286. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  287. package/dist/views/Versions/getLatestVersion.js +15 -4
  288. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  289. package/dist/views/Versions/index.d.ts.map +1 -1
  290. package/dist/views/Versions/index.js +4 -4
  291. package/dist/views/Versions/index.js.map +1 -1
  292. package/dist/views/Versions/index.scss +78 -76
  293. package/dist/withPayload.d.ts.map +1 -1
  294. package/dist/withPayload.js +9 -1
  295. package/dist/withPayload.js.map +1 -1
  296. package/package.json +10 -10
  297. package/dist/cjs/withPayload.js +0 -111
  298. package/dist/cjs/withPayload.js.map +0 -1
  299. package/dist/views/ResetPassword/index.client.d.ts +0 -7
  300. package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
  301. package/dist/views/ResetPassword/index.client.js.map +0 -1
@@ -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","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}\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":";AAEA,SACEA,oBAAoB,EACpBC,iBAAiB,EACjBC,mBAAmB,EACnBC,eAAe,QACV;AACP,SAASC,wBAAwB,QAAQ;AACzC,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAChC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AAEzB,SAASC,uBAAuB,QAAQ;AAExC,OAAO,MAAMC,OAAA,GAAoC,MAAAA,CAAO;EACtDC,cAAc;EACdC,MAAM;EACNC;AAAY,CACb;EACC,MAAM;IACJC,eAAe;IACfC,MAAM;IACNC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MACHC,IAAI;MACJC,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBC;IAAI;EACL,CACF,GAAGV,cAAA;EAEJ,MAAM;IACJW,KAAA,EAAO;MACLC,UAAA,EAAY;QAAEC,KAAA,EAAO;UAAEd,OAAA,EAASe;QAAsB,CAAE,GAAG,CAAC;MAAC,CAAE,GAAG,CAAC,CAAC;MACpEC,KAAK;MACLL,IAAA,EAAMM;IAAQ,CACf;IACDC,MAAA,EAAQ;MAAEC;IAAG,CAAE;IACfC;EAAS,CACV,GAAGV,MAAA;EAEJ,MAAMW,gBAAA,GAAmBX,MAAA,CAAOY,WAAW,CAACC,IAAI,CAAEC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKR,QAAA;EAErF,IAAII,gBAAA,IAAoBV,IAAA,EAAMe,EAAA,EAAI;IAChC,MAAM;MAAEC,cAAc;MAAEC,oBAAoB;MAAEC;IAAiB,CAAE,GAC/D,MAAMlC,sBAAA,CAAuB;MAC3B+B,EAAA,EAAIf,IAAA,CAAKe,EAAE;MACXL,gBAAA;MACAS,IAAA,EAAMnB,IAAA;MACNJ;IACF;IAEF,MAAM;MAAEuB,IAAI;MAAEC;IAAS,CAAE,GAAG,MAAMrC,eAAA,CAAgB;MAChDgC,EAAA,EAAIf,IAAA,CAAKe,EAAE;MACXL,gBAAA;MACAhB,MAAA;MACAE;IACF;IAEA,MAAMyB,qBAAA,GAAwB1C,wBAAA,CAAyB;MACrD2C,SAAA,EAAWxB,OAAA,CAAQwB,SAAS;MAC5BC,WAAA,EAAa;QACX1B,IAAA;QACAP,cAAA;QACAI,MAAA;QACAH,MAAA;QACAO,OAAA;QACAH,WAAA;QACA6B,aAAA,EAAe,EAAE;QACjBhC,YAAA;QACAQ;MACF;IACF;IAEA,MAAMyB,sBAAA,GAAyBJ,qBAAA,CAC7BjB,sBAAA,EAAwBsB,SAAA,EACxBC,SAAA,EACA1C,QAAA,EACA;IAGF,oBACE2C,IAAA,CAACrD,oBAAA;MACCsD,WAAA,eAAaD,IAAA,CAACzC,QAAA;QAASU,IAAA,EAAMA,IAAA;QAAMJ,eAAA,EAAiBA,eAAA;QAAiBY,KAAA,EAAOA;;MAC5EyB,MAAA,EAAQ,GAAGrB,SAAA,GAAYD,GAAA,IAAOF,QAAA,GAAWN,IAAA,EAAMe,EAAA,GAAK,IAAIf,IAAA,CAAKe,EAAE,EAAE,GAAG,IAAI;MACxEgB,cAAA,EAAgBzB,QAAA;MAChBU,cAAA,EAAgBA,cAAA;MAChBC,oBAAA,EAAsBA,oBAAA;MACtBC,iBAAA,EAAmBA,iBAAA;MACnBH,EAAA,EAAIf,IAAA,EAAMe,EAAA;MACViB,WAAA,EAAab,IAAA;MACbc,YAAA,EAAcb,SAAA;MACdc,SAAS;gBAET,aAAAC,KAAA,CAAC3D,iBAAA;QAAkB4D,KAAA,EAAO;gCACxBR,IAAA,CAAC9C,cAAA;UACC4B,gBAAA,EAAkBA,gBAAA;UAClB2B,QAAQ;UACRxC,IAAA,EAAMA,IAAA;UACNC,OAAA,EAASA,OAAA;UACTH,WAAA,EAAaA;yBAEfiC,IAAA,CAACnD,mBAAA;UAAoBkB,WAAA,EAAaA;yBAClCiC,IAAA,CAAClD,eAAA;UAAgB4D,eAAA,EAAiBb;yBAClCG,IAAA,CAAC1C,aAAA;;;EAIT;EAEA,OAAON,QAAA;AACT","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,CAiEA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,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,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,13 +28,16 @@ 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
@@ -53,19 +56,31 @@ export const CreateFirstUserClient = t0 => {
53
56
  });
54
57
  return state;
55
58
  };
56
- $[9] = apiRoute;
57
- $[10] = userSlug;
58
- $[11] = serverURL;
59
- $[12] = t4;
59
+ $[10] = apiRoute;
60
+ $[11] = userSlug;
61
+ $[12] = serverURL;
62
+ $[13] = t4;
60
63
  } else {
61
- t4 = $[12];
64
+ t4 = $[13];
62
65
  }
63
66
  const onChange = t4;
67
+ let t5;
68
+ if ($[14] !== setUser) {
69
+ t5 = data => {
70
+ setUser(data);
71
+ };
72
+ $[14] = setUser;
73
+ $[15] = t5;
74
+ } else {
75
+ t5 = $[15];
76
+ }
77
+ const handleFirstRegister = t5;
64
78
  t3 = _jsxs(Form, {
65
79
  action: `${serverURL}${apiRoute}/${userSlug}/first-register`,
66
80
  initialState,
67
81
  method: "POST",
68
82
  onChange: [onChange],
83
+ onSuccess: handleFirstRegister,
69
84
  redirect: admin,
70
85
  validationOperation: "create",
71
86
  children: [_jsx(RenderEmailAndUsernameFields, {
@@ -96,13 +111,14 @@ export const CreateFirstUserClient = t0 => {
96
111
  $[1] = getEntityConfig;
97
112
  $[2] = apiRoute;
98
113
  $[3] = serverURL;
99
- $[4] = loginWithUsername;
100
- $[5] = t;
101
- $[6] = initialState;
102
- $[7] = admin;
103
- $[8] = t3;
114
+ $[4] = setUser;
115
+ $[5] = loginWithUsername;
116
+ $[6] = t;
117
+ $[7] = initialState;
118
+ $[8] = admin;
119
+ $[9] = t3;
104
120
  } else {
105
- t3 = $[8];
121
+ t3 = $[9];
106
122
  }
107
123
  return t3;
108
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","state","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 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 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;QACjC;UAAAG;QAAA,UAAwB1B,YAAA;UAAAiB,QAAA;UAAAU,IAAA;YAAAN,cAAA,EAGJb,QAAA;YAAAgB,SAAA,EACLC,aAAA;YAAAG,SAAA,EACA;YAAAC,UAAA,EACC,IAAIrB,QAAA;UAAe;UAAAM;QAAA,CAGnC;QAAA,OACOY,KAAA;MAAA;MACTrB,CAAA,MAAAY,QAAA;MAAAZ,CAAA,OAAAG,QAAA;MAAAH,CAAA,OAAAS,SAAA;MAAAT,CAAA,OAAAiB,EAAA;IAAA;MAAAA,EAAA,GAAAjB,CAAA;IAAA;IAbF,MAAAyB,QAAA,GAA2CR,EAcV;IAI/BH,EAAA,GAAAY,KAAA,CAAArC,IAAA;MAAAsC,MAAA,EACU,GAAGlB,SAAA,GAAYG,QAAA,IAAYT,QAAA,iBAAyB;MAAAF,YAAA;MAAA2B,MAAA,EAErD;MAAAH,QAAA,GACIA,QAAA;MAAAI,QAAA,EACDnB,KAAA;MAAAoB,mBAAA,EACU;MAAAC,QAAA,GAEpBC,IAAA,CAAAnC,4BAAA;QAAAoC,SAAA,EACY;QAAA/B,iBAAA;QAAAqB,SAAA,EAEA;QAAAW,QAAA;MAAA,C,GAGZF,IAAA,CAAAzC,aAAA;QAAA4C,YAAA,EACgB;QAAAC,KAAA;UAAAC,IAAA,EAEN;UAAAC,KAAA,EACCzB,CAAA,CAAE;UAAA0B,QAAA;QAAA;MAAA,C,GAIbP,IAAA,CAAA5C,oBAAA,IAAC,GACD4C,IAAA,CAAAxC,YAAA;QAAAgD,MAAA,EACUzB,gBAAA,CAAAyB,MAAA;QAAAC,WAAA;QAAAlB,SAAA,EAEE;QAAAmB,IAAA,EACL;QAAAR,QAAA;QAAAV,UAAA,EAEOrB;MAAA,C,GAEd6B,IAAA,CAAA1C,UAAA;QAAAqD,IAAA,EAAiB;QAAAZ,QAAA,EAASlB,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","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 { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type { ClientCollectionConfig, FormState, LoginWithUsernameOptions } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\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: UserWithToken) => {\n setUser(data)\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":"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","ignoreList":[]}
@@ -1,19 +1,21 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
- .create-first-user {
4
- display: flex;
5
- flex-direction: column;
6
- gap: base(0.4);
3
+ @layer payload-default {
4
+ .create-first-user {
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: base(0.4);
7
8
 
8
- > form > .field-type {
9
- margin-bottom: var(--base);
9
+ > form > .field-type {
10
+ margin-bottom: var(--base);
10
11
 
11
- & .form-submit {
12
- margin: 0;
12
+ & .form-submit {
13
+ margin: 0;
14
+ }
13
15
  }
14
16
  }
15
- }
16
17
 
17
- .emailAndUsername {
18
- margin-bottom: var(--base);
18
+ .emailAndUsername {
19
+ margin-bottom: var(--base);
20
+ }
19
21
  }
@@ -6,8 +6,10 @@ export type DashboardProps = {
6
6
  globalData: Array<{
7
7
  data: {
8
8
  _isLocked: boolean;
9
- _userEditing: ClientUser | null;
9
+ _lastEditedAt: string;
10
+ _userEditing: ClientUser | number | string;
10
11
  };
12
+ lockDuration?: number;
11
13
  slug: string;
12
14
  }>;
13
15
  Link: React.ComponentType<any>;
@@ -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,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
+ {"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;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF,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,CAyKrD,CAAA"}
@@ -82,7 +82,7 @@ export const DefaultDashboard = props => {
82
82
  let createHREF;
83
83
  let href;
84
84
  let hasCreatePermission;
85
- let lockStatus = null;
85
+ let isLocked = null;
86
86
  let userEditing = null;
87
87
  if (type === EntityType.collection) {
88
88
  title = getTranslation(entity.labels.plural, i18n);
@@ -111,13 +111,22 @@ export const DefaultDashboard = props => {
111
111
  // Find the lock status for the global
112
112
  const globalLockData = globalData.find(global => global.slug === entity.slug);
113
113
  if (globalLockData) {
114
- lockStatus = globalLockData.data._isLocked;
114
+ isLocked = globalLockData.data._isLocked;
115
115
  userEditing = globalLockData.data._userEditing;
116
+ // Check if the lock is expired
117
+ const lockDuration = globalLockData?.lockDuration;
118
+ const lastEditedAt = new Date(globalLockData.data?._lastEditedAt).getTime();
119
+ const lockDurationInMilliseconds = lockDuration * 1000;
120
+ const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds;
121
+ if (new Date().getTime() > lockExpirationTime) {
122
+ isLocked = false;
123
+ userEditing = null;
124
+ }
116
125
  }
117
126
  }
118
127
  return /*#__PURE__*/_jsx("li", {
119
128
  children: /*#__PURE__*/_jsx(Card, {
120
- actions: lockStatus && user?.id !== userEditing?.id ? /*#__PURE__*/_jsx(Locked, {
129
+ actions: isLocked && user?.id !== userEditing?.id ? /*#__PURE__*/_jsx(Locked, {
121
130
  className: `${baseClass}__locked`,
122
131
  user: userEditing
123
132
  }) : hasCreatePermission && type === EntityType.collection ? /*#__PURE__*/_jsx(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","SetStepNav","SetViewActions","EntityType","formatAdminURL","getCreateMappedComponent","RenderComponent","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","createMappedComponent","importMap","serverProps","mappedBeforeDashboards","undefined","mappedAfterDashboards","_jsxs","className","_jsx","nav","actions","mappedComponent","length","map","entities","label","groupIndex","type","entity","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","lockStatus","userEditing","collection","labels","plural","path","slug","collections","create","permission","global","globalLockData","find","data","_isLocked","_userEditing","id","singular","buttonStyle","el","icon","iconStyle","round","to","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, Permissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked, SetStepNav, SetViewActions } from '@payloadcms/ui'\nimport {\n EntityType,\n formatAdminURL,\n getCreateMappedComponent,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{ data: { _isLocked: boolean; _userEditing: ClientUser | null }; slug: string }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: Permissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const mappedBeforeDashboards = createMappedComponent(\n beforeDashboard,\n undefined,\n undefined,\n 'beforeDashboard',\n )\n\n const mappedAfterDashboards = createMappedComponent(\n afterDashboard,\n undefined,\n undefined,\n 'afterDashboard',\n )\n\n return (\n <div className={baseClass}>\n <SetStepNav nav={[]} />\n <SetViewActions actions={[]} />\n <Gutter className={`${baseClass}__wrap`}>\n <RenderComponent mappedComponent={mappedBeforeDashboards} />\n <Fragment>\n <SetViewActions actions={[]} />\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ type, entity }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let lockStatus = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(entity.labels.plural, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${entity.slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${entity.slug}/create`,\n })\n\n hasCreatePermission =\n permissions?.collections?.[entity.slug]?.create?.permission\n }\n\n if (type === EntityType.global) {\n title = getTranslation(entity.label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(entity.label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${entity.slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find(\n (global) => global.slug === entity.slug,\n )\n if (globalLockData) {\n lockStatus = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n lockStatus && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label: getTranslation(entity.labels.singular, i18n),\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${entity.slug}`}\n Link={Link}\n title={title}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n <RenderComponent mappedComponent={mappedAfterDashboards} />\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","SetStepNav","SetViewActions","EntityType","formatAdminURL","getCreateMappedComponent","RenderComponent","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","createMappedComponent","importMap","serverProps","mappedBeforeDashboards","undefined","mappedAfterDashboards","_jsxs","className","_jsx","nav","actions","mappedComponent","length","map","entities","label","groupIndex","type","entity","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","labels","plural","path","slug","collections","create","permission","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","id","singular","buttonStyle","el","icon","iconStyle","round","to","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, Permissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked, SetStepNav, SetViewActions } from '@payloadcms/ui'\nimport {\n EntityType,\n formatAdminURL,\n getCreateMappedComponent,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: Permissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const mappedBeforeDashboards = createMappedComponent(\n beforeDashboard,\n undefined,\n undefined,\n 'beforeDashboard',\n )\n\n const mappedAfterDashboards = createMappedComponent(\n afterDashboard,\n undefined,\n undefined,\n 'afterDashboard',\n )\n\n return (\n <div className={baseClass}>\n <SetStepNav nav={[]} />\n <SetViewActions actions={[]} />\n <Gutter className={`${baseClass}__wrap`}>\n <RenderComponent mappedComponent={mappedBeforeDashboards} />\n <Fragment>\n <SetViewActions actions={[]} />\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ type, entity }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(entity.labels.plural, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${entity.slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${entity.slug}/create`,\n })\n\n hasCreatePermission =\n permissions?.collections?.[entity.slug]?.create?.permission\n }\n\n if (type === EntityType.global) {\n title = getTranslation(entity.label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(entity.label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${entity.slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find(\n (global) => global.slug === entity.slug,\n )\n\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label: getTranslation(entity.labels.singular, i18n),\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${entity.slug}`}\n Link={Link}\n title={title}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n <RenderComponent mappedComponent={mappedAfterDashboards} />\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,67 +1,69 @@
1
1
  @import '../../../scss/styles.scss';
2
2
 
3
- .dashboard {
4
- width: 100%;
5
- --gap: var(--base);
6
- --cols: 5;
3
+ @layer payload-default {
4
+ .dashboard {
5
+ width: 100%;
6
+ --gap: var(--base);
7
+ --cols: 5;
7
8
 
8
- &__wrap {
9
- padding-bottom: var(--spacing-view-bottom);
10
- display: flex;
11
- flex-direction: column;
12
- gap: var(--base);
13
- }
9
+ &__wrap {
10
+ padding-bottom: var(--spacing-view-bottom);
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--base);
14
+ }
14
15
 
15
- &__group {
16
- display: flex;
17
- flex-direction: column;
18
- gap: var(--gap);
19
- }
16
+ &__group {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: var(--gap);
20
+ }
20
21
 
21
- &__label {
22
- margin: 0;
23
- }
22
+ &__label {
23
+ margin: 0;
24
+ }
24
25
 
25
- &__card-list {
26
- padding: 0;
27
- margin: 0;
28
- list-style: none;
29
- gap: var(--gap);
30
- display: grid;
31
- grid-template-columns: repeat(var(--cols), 1fr);
26
+ &__card-list {
27
+ padding: 0;
28
+ margin: 0;
29
+ list-style: none;
30
+ gap: var(--gap);
31
+ display: grid;
32
+ grid-template-columns: repeat(var(--cols), 1fr);
32
33
 
33
- .card {
34
- height: 100%;
34
+ .card {
35
+ height: 100%;
36
+ }
35
37
  }
36
- }
37
38
 
38
- &__locked.locked {
39
- align-items: unset;
40
- justify-content: unset;
41
- }
39
+ &__locked.locked {
40
+ align-items: unset;
41
+ justify-content: unset;
42
+ }
42
43
 
43
- @include large-break {
44
- --cols: 4;
45
- }
44
+ @include large-break {
45
+ --cols: 4;
46
+ }
46
47
 
47
- @include mid-break {
48
- --gap: var(--base);
49
- --cols: 2;
50
- }
48
+ @include mid-break {
49
+ --gap: var(--base);
50
+ --cols: 2;
51
+ }
51
52
 
52
- @include small-break {
53
- --cols: 2;
53
+ @include small-break {
54
+ --cols: 2;
54
55
 
55
- &__wrap {
56
- gap: var(--base);
57
- }
56
+ &__wrap {
57
+ gap: var(--base);
58
+ }
58
59
 
59
- &__card-list {
60
- gap: base(0.4);
60
+ &__card-list {
61
+ gap: base(0.4);
62
+ }
61
63
  }
62
- }
63
64
 
64
- @include extra-small-break {
65
- --cols: 1;
65
+ @include extra-small-break {
66
+ --cols: 1;
67
+ }
66
68
  }
67
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAiH9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkI9C,CAAA"}
@@ -22,25 +22,43 @@ export const Dashboard = async ({
22
22
  payload,
23
23
  user
24
24
  },
25
+ req,
25
26
  visibleEntities
26
27
  } = initPageResult;
27
28
  const CustomDashboardComponent = config.admin.components?.views?.Dashboard;
28
29
  const collections = config.collections.filter(collection => permissions?.collections?.[collection.slug]?.read?.permission && visibleEntities.collections.includes(collection.slug));
29
30
  const globals = config.globals.filter(global => permissions?.globals?.[global.slug]?.read?.permission && visibleEntities.globals.includes(global.slug));
30
- const globalSlugs = config.globals.map(global => global.slug);
31
- // Filter the slugs based on permissions and visibility
32
- const filteredGlobalSlugs = globalSlugs.filter(slug => permissions?.globals?.[slug]?.read?.permission && visibleEntities.globals.includes(slug));
33
- const globalData = await Promise.all(filteredGlobalSlugs.map(async slug => {
34
- const data = await payload.findGlobal({
35
- slug,
36
- depth: 0,
37
- includeLockStatus: true
31
+ // Query locked global documents only if there are globals in the config
32
+ let globalData = [];
33
+ if (config.globals.length > 0) {
34
+ const lockedDocuments = await payload.find({
35
+ collection: 'payload-locked-documents',
36
+ depth: 1,
37
+ overrideAccess: false,
38
+ pagination: false,
39
+ req,
40
+ where: {
41
+ globalSlug: {
42
+ exists: true
43
+ }
44
+ }
38
45
  });
39
- return {
40
- slug,
41
- data
42
- };
43
- }));
46
+ // Map over globals to include `lockDuration` and lock data for each global slug
47
+ globalData = config.globals.map(global => {
48
+ const lockDurationDefault = 300;
49
+ const lockDuration = typeof global.lockDocuments === 'object' ? global.lockDocuments.duration : lockDurationDefault;
50
+ const lockedDoc = lockedDocuments.docs.find(doc => doc.globalSlug === global.slug);
51
+ return {
52
+ slug: global.slug,
53
+ data: {
54
+ _isLocked: !!lockedDoc,
55
+ _lastEditedAt: lockedDoc?.updatedAt ?? null,
56
+ _userEditing: lockedDoc?.user?.value ?? null
57
+ },
58
+ lockDuration
59
+ };
60
+ });
61
+ }
44
62
  const navGroups = groupNavItems([...(collections.map(collection => {
45
63
  const entityToGroup = {
46
64
  type: EntityType.collection,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HydrateAuthProvider","EntityType","getCreateMappedComponent","groupNavItems","RenderComponent","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","CustomDashboardComponent","admin","components","views","collections","filter","collection","slug","read","permission","includes","globals","global","globalSlugs","map","filteredGlobalSlugs","globalData","Promise","all","data","findGlobal","depth","includeLockStatus","navGroups","entityToGroup","type","entity","createMappedComponent","importMap","serverProps","mappedDashboardComponent","Component","undefined","_jsxs","_jsx","clientProps","mappedComponent"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider } from '@payloadcms/ui'\nimport {\n EntityType,\n getCreateMappedComponent,\n groupNavItems,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const CustomDashboardComponent = config.admin.components?.views?.Dashboard\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read?.permission &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read?.permission &&\n visibleEntities.globals.includes(global.slug),\n )\n\n const globalSlugs = config.globals.map((global) => global.slug)\n\n // Filter the slugs based on permissions and visibility\n const filteredGlobalSlugs = globalSlugs.filter(\n (slug) =>\n permissions?.globals?.[slug]?.read?.permission && visibleEntities.globals.includes(slug),\n )\n\n const globalData = await Promise.all(\n filteredGlobalSlugs.map(async (slug) => {\n const data = await payload.findGlobal({\n slug,\n depth: 0,\n includeLockStatus: true,\n })\n\n return {\n slug,\n data,\n }\n }),\n )\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n },\n })\n\n const mappedDashboardComponent = createMappedComponent(\n CustomDashboardComponent?.Component,\n undefined,\n DefaultDashboard,\n 'CustomDashboardComponent.Component',\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <RenderComponent\n clientProps={{\n Link,\n locale,\n }}\n mappedComponent={mappedDashboardComponent}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["HydrateAuthProvider","EntityType","getCreateMappedComponent","groupNavItems","RenderComponent","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","CustomDashboardComponent","admin","components","views","collections","filter","collection","slug","read","permission","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","where","globalSlug","exists","map","lockDurationDefault","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","updatedAt","_userEditing","value","navGroups","entityToGroup","type","entity","createMappedComponent","importMap","serverProps","mappedDashboardComponent","Component","undefined","_jsxs","_jsx","clientProps","mappedComponent"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider } from '@payloadcms/ui'\nimport {\n EntityType,\n getCreateMappedComponent,\n groupNavItems,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = initPageResult\n\n const CustomDashboardComponent = config.admin.components?.views?.Dashboard\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read?.permission &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read?.permission &&\n visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDurationDefault = 300\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : lockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: lockedDoc?.updatedAt ?? null,\n _userEditing: lockedDoc?.user?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n },\n })\n\n const mappedDashboardComponent = createMappedComponent(\n CustomDashboardComponent?.Component,\n undefined,\n DefaultDashboard,\n 'CustomDashboardComponent.Component',\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <RenderComponent\n clientProps={{\n Link,\n locale,\n }}\n mappedComponent={mappedDashboardComponent}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -32,8 +32,10 @@ export const getDocumentData = async args => {
32
32
  formState
33
33
  };
34
34
  } catch (error) {
35
- console.error('Error getting document data', error) // eslint-disable-line no-console
36
- ;
35
+ req.payload.logger.error({
36
+ err: error,
37
+ msg: 'Error getting document data'
38
+ });
37
39
  return {
38
40
  data: null,
39
41
  formState: {
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentData.js","names":["buildFormState","reduceFieldsToValues","getDocumentData","args","id","collectionConfig","globalConfig","locale","req","schemaPath","schemaPathFromProps","slug","state","formState","data","collectionSlug","globalSlug","code","operation","error","console","fields","initialValue","undefined","valid","value"],"sources":["../../../src/views/Document/getDocumentData.tsx"],"sourcesContent":["import type {\n Data,\n FormState,\n Locale,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport const getDocumentData = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale: Locale\n req: PayloadRequest\n schemaPath?: string\n}): Promise<{\n data: Data\n formState: FormState\n}> => {\n const { id, collectionConfig, globalConfig, locale, req, schemaPath: schemaPathFromProps } = args\n\n const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug\n\n try {\n const { state: formState } = await buildFormState({\n req: {\n ...req,\n data: {\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n locale: locale?.code,\n operation: (collectionConfig && id) || globalConfig ? 'update' : 'create',\n schemaPath,\n },\n },\n })\n\n const data = reduceFieldsToValues(formState, true)\n\n return {\n data,\n formState,\n }\n } catch (error) {\n console.error('Error getting document data', error) // eslint-disable-line no-console\n return {\n data: null,\n formState: {\n fields: {\n initialValue: undefined,\n valid: false,\n value: undefined,\n },\n },\n }\n }\n}\n"],"mappings":"AASA,SAASA,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AAErC,OAAO,MAAMC,eAAA,GAAkB,MAAOC,IAAA;EAWpC,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC,MAAM;IAAEC,GAAG;IAAEC,UAAA,EAAYC;EAAmB,CAAE,GAAGP,IAAA;EAE7F,MAAMM,UAAA,GAAaC,mBAAA,IAAuBL,gBAAA,EAAkBM,IAAA,IAAQL,YAAA,EAAcK,IAAA;EAElF,IAAI;IACF,MAAM;MAAEC,KAAA,EAAOC;IAAS,CAAE,GAAG,MAAMb,cAAA,CAAe;MAChDQ,GAAA,EAAK;QACH,GAAGA,GAAG;QACNM,IAAA,EAAM;UACJV,EAAA;UACAW,cAAA,EAAgBV,gBAAA,EAAkBM,IAAA;UAClCK,UAAA,EAAYV,YAAA,EAAcK,IAAA;UAC1BJ,MAAA,EAAQA,MAAA,EAAQU,IAAA;UAChBC,SAAA,EAAWb,gBAAC,IAAoBD,EAAA,IAAOE,YAAA,GAAe,WAAW;UACjEG;QACF;MACF;IACF;IAEA,MAAMK,IAAA,GAAOb,oBAAA,CAAqBY,SAAA,EAAW;IAE7C,OAAO;MACLC,IAAA;MACAD;IACF;EACF,EAAE,OAAOM,KAAA,EAAO;IACdC,OAAA,CAAQD,KAAK,CAAC,+BAA+BA,KAAA,EAAO;IAAA;IACpD,OAAO;MACLL,IAAA,EAAM;MACND,SAAA,EAAW;QACTQ,MAAA,EAAQ;UACNC,YAAA,EAAcC,SAAA;UACdC,KAAA,EAAO;UACPC,KAAA,EAAOF;QACT;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getDocumentData.js","names":["buildFormState","reduceFieldsToValues","getDocumentData","args","id","collectionConfig","globalConfig","locale","req","schemaPath","schemaPathFromProps","slug","state","formState","data","collectionSlug","globalSlug","code","operation","error","payload","logger","err","msg","fields","initialValue","undefined","valid","value"],"sources":["../../../src/views/Document/getDocumentData.tsx"],"sourcesContent":["import type {\n Data,\n FormState,\n Locale,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport const getDocumentData = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale: Locale\n req: PayloadRequest\n schemaPath?: string\n}): Promise<{\n data: Data\n formState: FormState\n}> => {\n const { id, collectionConfig, globalConfig, locale, req, schemaPath: schemaPathFromProps } = args\n\n const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug\n\n try {\n const { state: formState } = await buildFormState({\n req: {\n ...req,\n data: {\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n locale: locale?.code,\n operation: (collectionConfig && id) || globalConfig ? 'update' : 'create',\n schemaPath,\n },\n },\n })\n\n const data = reduceFieldsToValues(formState, true)\n\n return {\n data,\n formState,\n }\n } catch (error) {\n req.payload.logger.error({ err: error, msg: 'Error getting document data' })\n return {\n data: null,\n formState: {\n fields: {\n initialValue: undefined,\n valid: false,\n value: undefined,\n },\n },\n }\n }\n}\n"],"mappings":"AASA,SAASA,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AAErC,OAAO,MAAMC,eAAA,GAAkB,MAAOC,IAAA;EAWpC,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC,MAAM;IAAEC,GAAG;IAAEC,UAAA,EAAYC;EAAmB,CAAE,GAAGP,IAAA;EAE7F,MAAMM,UAAA,GAAaC,mBAAA,IAAuBL,gBAAA,EAAkBM,IAAA,IAAQL,YAAA,EAAcK,IAAA;EAElF,IAAI;IACF,MAAM;MAAEC,KAAA,EAAOC;IAAS,CAAE,GAAG,MAAMb,cAAA,CAAe;MAChDQ,GAAA,EAAK;QACH,GAAGA,GAAG;QACNM,IAAA,EAAM;UACJV,EAAA;UACAW,cAAA,EAAgBV,gBAAA,EAAkBM,IAAA;UAClCK,UAAA,EAAYV,YAAA,EAAcK,IAAA;UAC1BJ,MAAA,EAAQA,MAAA,EAAQU,IAAA;UAChBC,SAAA,EAAWb,gBAAC,IAAoBD,EAAA,IAAOE,YAAA,GAAe,WAAW;UACjEG;QACF;MACF;IACF;IAEA,MAAMK,IAAA,GAAOb,oBAAA,CAAqBY,SAAA,EAAW;IAE7C,OAAO;MACLC,IAAA;MACAD;IACF;EACF,EAAE,OAAOM,KAAA,EAAO;IACdX,GAAA,CAAIY,OAAO,CAACC,MAAM,CAACF,KAAK,CAAC;MAAEG,GAAA,EAAKH,KAAA;MAAOI,GAAA,EAAK;IAA8B;IAC1E,OAAO;MACLT,IAAA,EAAM;MACND,SAAA,EAAW;QACTW,MAAA,EAAQ;UACNC,YAAA,EAAcC,SAAA;UACdC,KAAA,EAAO;UACPC,KAAA,EAAOF;QACT;MACF;IACF;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,mBAAmB,CAAA;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAkFA,CAAA"}
1
+ {"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,mBAAmB,CAAA;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAqFA,CAAA"}
@@ -19,7 +19,10 @@ export const getDocumentPermissions = async args => {
19
19
  },
20
20
  req: {
21
21
  ...req,
22
- data
22
+ data: {
23
+ ...data,
24
+ _status: 'draft'
25
+ }
23
26
  }
24
27
  });
25
28
  if (collectionConfig.versions?.drafts) {
@@ -40,8 +43,7 @@ export const getDocumentPermissions = async args => {
40
43
  }) => update?.permission);
41
44
  }
42
45
  } catch (error) {
43
- console.error(error) // eslint-disable-line no-console
44
- ;
46
+ req.payload.logger.error(error);
45
47
  }
46
48
  }
47
49
  if (globalConfig) {
@@ -68,8 +70,7 @@ export const getDocumentPermissions = async args => {
68
70
  }) => update?.permission);
69
71
  }
70
72
  } catch (error) {
71
- console.error(error) // eslint-disable-line no-console
72
- ;
73
+ req.payload.logger.error(error);
73
74
  }
74
75
  }
75
76
  const hasSavePermission = getHasSavePermission({