@payloadcms/next 3.0.0-canary.926cbeb → 3.0.0-canary.95fcd13

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 (281) hide show
  1. package/dist/cjs/withPayload.cjs +10 -5
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +5 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
  10. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
  14. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  16. package/dist/elements/EmailAndUsername/index.d.ts +8 -0
  17. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  18. package/dist/elements/EmailAndUsername/index.js +33 -0
  19. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  20. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  21. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  22. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  24. package/dist/elements/Nav/index.client.js +15 -5
  25. package/dist/elements/Nav/index.client.js.map +1 -1
  26. package/dist/layouts/Root/index.d.ts.map +1 -1
  27. package/dist/layouts/Root/index.js +0 -18
  28. package/dist/layouts/Root/index.js.map +1 -1
  29. package/dist/prod/styles.css +1 -1
  30. package/dist/routes/graphql/handler.d.ts.map +1 -1
  31. package/dist/routes/graphql/handler.js +1 -5
  32. package/dist/routes/graphql/handler.js.map +1 -1
  33. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  34. package/dist/routes/rest/auth/login.js +1 -1
  35. package/dist/routes/rest/auth/login.js.map +1 -1
  36. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  37. package/dist/routes/rest/auth/unlock.js +7 -3
  38. package/dist/routes/rest/auth/unlock.js.map +1 -1
  39. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  40. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  41. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  42. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  43. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  44. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  45. package/dist/routes/rest/index.d.ts.map +1 -1
  46. package/dist/routes/rest/index.js +30 -5
  47. package/dist/routes/rest/index.js.map +1 -1
  48. package/dist/routes/rest/routeError.d.ts.map +1 -1
  49. package/dist/routes/rest/routeError.js +3 -3
  50. package/dist/routes/rest/routeError.js.map +1 -1
  51. package/dist/scss/app.scss +5 -10
  52. package/dist/scss/colors.scss +76 -76
  53. package/dist/scss/toastify.scss +59 -0
  54. package/dist/scss/toasts.scss +75 -45
  55. package/dist/scss/type.scss +14 -23
  56. package/dist/scss/vars.scss +26 -47
  57. package/dist/templates/Default/index.d.ts +2 -2
  58. package/dist/templates/Default/index.d.ts.map +1 -1
  59. package/dist/templates/Default/index.js.map +1 -1
  60. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  61. package/dist/utilities/createPayloadRequest.js +11 -8
  62. package/dist/utilities/createPayloadRequest.js.map +1 -1
  63. package/dist/utilities/getNextRequestI18n.d.ts +3 -3
  64. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  65. package/dist/utilities/getNextRequestI18n.js +3 -1
  66. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  67. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  68. package/dist/utilities/getPayloadHMR.js +11 -8
  69. package/dist/utilities/getPayloadHMR.js.map +1 -1
  70. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  71. package/dist/utilities/headersWithCors.js +19 -3
  72. package/dist/utilities/headersWithCors.js.map +1 -1
  73. package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
  74. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  75. package/dist/utilities/initPage/handleAdminPage.js +17 -4
  76. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  77. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  78. package/dist/utilities/initPage/handleAuthRedirect.js +16 -4
  79. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  80. package/dist/utilities/initPage/index.js +1 -1
  81. package/dist/utilities/initPage/index.js.map +1 -1
  82. package/dist/utilities/initPage/shared.d.ts +14 -2
  83. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  84. package/dist/utilities/initPage/shared.js +14 -4
  85. package/dist/utilities/initPage/shared.js.map +1 -1
  86. package/dist/utilities/mergeHeaders.d.ts +1 -1
  87. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  88. package/dist/utilities/mergeHeaders.js +7 -33
  89. package/dist/utilities/mergeHeaders.js.map +1 -1
  90. package/dist/utilities/meta.d.ts +2 -2
  91. package/dist/utilities/meta.d.ts.map +1 -1
  92. package/dist/utilities/meta.js +1 -1
  93. package/dist/utilities/meta.js.map +1 -1
  94. package/dist/views/Account/index.d.ts.map +1 -1
  95. package/dist/views/Account/index.js +14 -23
  96. package/dist/views/Account/index.js.map +1 -1
  97. package/dist/views/CreateFirstUser/index.client.d.ts +2 -1
  98. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  99. package/dist/views/CreateFirstUser/index.client.js +11 -13
  100. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  101. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  102. package/dist/views/CreateFirstUser/index.js +11 -29
  103. package/dist/views/CreateFirstUser/index.js.map +1 -1
  104. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  105. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  106. package/dist/views/Dashboard/Default/index.js +13 -4
  107. package/dist/views/Dashboard/Default/index.js.map +1 -1
  108. package/dist/views/Dashboard/Default/index.scss +11 -7
  109. package/dist/views/Document/getDocumentData.d.ts +1 -0
  110. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  111. package/dist/views/Document/getDocumentData.js +4 -3
  112. package/dist/views/Document/getDocumentData.js.map +1 -1
  113. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  114. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  115. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  116. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  117. package/dist/views/Document/getViewsFromConfig.js +19 -5
  118. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  119. package/dist/views/Document/index.d.ts.map +1 -1
  120. package/dist/views/Document/index.js +24 -32
  121. package/dist/views/Document/index.js.map +1 -1
  122. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  123. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  124. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  125. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  126. package/dist/views/Edit/Default/Auth/index.js +65 -32
  127. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  128. package/dist/views/Edit/Default/Auth/index.scss +17 -2
  129. package/dist/views/Edit/Default/Auth/types.d.ts +4 -1
  130. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  131. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  132. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  133. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
  134. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  135. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  136. package/dist/views/Edit/Default/index.js +26 -23
  137. package/dist/views/Edit/Default/index.js.map +1 -1
  138. package/dist/views/Edit/Default/index.scss +2 -2
  139. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  140. package/dist/views/ForgotPassword/index.js +12 -4
  141. package/dist/views/ForgotPassword/index.js.map +1 -1
  142. package/dist/views/List/Default/index.scss +2 -5
  143. package/dist/views/List/index.d.ts.map +1 -1
  144. package/dist/views/List/index.js +10 -4
  145. package/dist/views/List/index.js.map +1 -1
  146. package/dist/views/List/meta.d.ts +2 -2
  147. package/dist/views/List/meta.d.ts.map +1 -1
  148. package/dist/views/List/meta.js.map +1 -1
  149. package/dist/views/LivePreview/Preview/index.js +1 -1
  150. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  151. package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
  152. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  153. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  154. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  155. package/dist/views/LivePreview/index.client.js.map +1 -1
  156. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  157. package/dist/views/Login/LoginField/index.d.ts +9 -0
  158. package/dist/views/Login/LoginField/index.d.ts.map +1 -0
  159. package/dist/views/Login/LoginField/index.js +46 -0
  160. package/dist/views/Login/LoginField/index.js.map +1 -0
  161. package/dist/views/Login/LoginForm/index.d.ts +3 -0
  162. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  163. package/dist/views/Login/LoginForm/index.js +30 -71
  164. package/dist/views/Login/LoginForm/index.js.map +1 -1
  165. package/dist/views/Login/index.d.ts.map +1 -1
  166. package/dist/views/Login/index.js +7 -0
  167. package/dist/views/Login/index.js.map +1 -1
  168. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  169. package/dist/views/Logout/LogoutClient.js +7 -2
  170. package/dist/views/Logout/LogoutClient.js.map +1 -1
  171. package/dist/views/Logout/index.d.ts +2 -2
  172. package/dist/views/Logout/index.d.ts.map +1 -1
  173. package/dist/views/Logout/index.js +2 -2
  174. package/dist/views/Logout/index.js.map +1 -1
  175. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  176. package/dist/views/NotFound/index.client.js +3 -2
  177. package/dist/views/NotFound/index.client.js.map +1 -1
  178. package/dist/views/NotFound/index.d.ts.map +1 -1
  179. package/dist/views/NotFound/index.js +5 -1
  180. package/dist/views/NotFound/index.js.map +1 -1
  181. package/dist/views/NotFound/meta.d.ts +2 -2
  182. package/dist/views/NotFound/meta.d.ts.map +1 -1
  183. package/dist/views/NotFound/meta.js.map +1 -1
  184. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  185. package/dist/views/ResetPassword/index.client.js +19 -31
  186. package/dist/views/ResetPassword/index.client.js.map +1 -1
  187. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  188. package/dist/views/ResetPassword/index.js +7 -3
  189. package/dist/views/ResetPassword/index.js.map +1 -1
  190. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  191. package/dist/views/Root/getViewFromConfig.js +5 -1
  192. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  193. package/dist/views/Root/index.d.ts +2 -2
  194. package/dist/views/Root/index.d.ts.map +1 -1
  195. package/dist/views/Root/index.js +14 -8
  196. package/dist/views/Root/index.js.map +1 -1
  197. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  198. package/dist/views/Unauthorized/index.js +1 -0
  199. package/dist/views/Unauthorized/index.js.map +1 -1
  200. package/dist/views/Verify/index.d.ts.map +1 -1
  201. package/dist/views/Verify/index.js +9 -2
  202. package/dist/views/Verify/index.js.map +1 -1
  203. package/dist/views/Version/Default/SetStepNav.d.ts +1 -3
  204. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  205. package/dist/views/Version/Default/SetStepNav.js +28 -13
  206. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  207. package/dist/views/Version/Default/index.d.ts.map +1 -1
  208. package/dist/views/Version/Default/index.js +15 -15
  209. package/dist/views/Version/Default/index.js.map +1 -1
  210. package/dist/views/Version/Default/types.d.ts +3 -3
  211. package/dist/views/Version/Default/types.d.ts.map +1 -1
  212. package/dist/views/Version/Default/types.js.map +1 -1
  213. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  214. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  215. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -4
  216. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  217. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  218. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -3
  219. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  220. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  221. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +9 -9
  222. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -2
  223. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  224. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  225. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +3 -4
  226. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  227. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  228. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  229. package/dist/views/Version/Restore/index.js +46 -13
  230. package/dist/views/Version/Restore/index.js.map +1 -1
  231. package/dist/views/Version/Restore/index.scss +31 -0
  232. package/dist/views/Version/Restore/types.d.ts +1 -0
  233. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  234. package/dist/views/Version/Restore/types.js.map +1 -1
  235. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  236. package/dist/views/Version/SelectComparison/index.js +49 -28
  237. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  238. package/dist/views/Version/SelectComparison/index.scss +1 -1
  239. package/dist/views/Version/SelectComparison/types.d.ts +2 -1
  240. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  241. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  242. package/dist/views/Version/index.d.ts.map +1 -1
  243. package/dist/views/Version/index.js +24 -45
  244. package/dist/views/Version/index.js.map +1 -1
  245. package/dist/views/Versions/buildColumns.d.ts +3 -1
  246. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  247. package/dist/views/Versions/buildColumns.js +7 -4
  248. package/dist/views/Versions/buildColumns.js.map +1 -1
  249. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
  250. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  251. package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
  252. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  253. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  254. package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
  255. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  256. package/dist/views/Versions/getLatestVersion.d.ts +5 -0
  257. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
  258. package/dist/views/Versions/getLatestVersion.js +29 -0
  259. package/dist/views/Versions/getLatestVersion.js.map +1 -0
  260. package/dist/views/Versions/index.client.d.ts.map +1 -1
  261. package/dist/views/Versions/index.client.js +3 -2
  262. package/dist/views/Versions/index.client.js.map +1 -1
  263. package/dist/views/Versions/index.d.ts.map +1 -1
  264. package/dist/views/Versions/index.js +22 -2
  265. package/dist/views/Versions/index.js.map +1 -1
  266. package/dist/withPayload.d.ts.map +1 -1
  267. package/dist/withPayload.js +10 -5
  268. package/dist/withPayload.js.map +1 -1
  269. package/package.json +19 -25
  270. package/dist/prod/index.js +0 -62
  271. package/dist/prod/payload/payload-favicon-dark.png +0 -0
  272. package/dist/prod/payload/payload-favicon-light.png +0 -0
  273. package/dist/prod/payload/static-og-image.png +0 -0
  274. package/dist/views/Version/shared.d.ts +0 -9
  275. package/dist/views/Version/shared.d.ts.map +0 -1
  276. package/dist/views/Version/shared.js +0 -10
  277. package/dist/views/Version/shared.js.map +0 -1
  278. package/dist/webpackEntry.d.ts +0 -5
  279. package/dist/webpackEntry.d.ts.map +0 -1
  280. package/dist/webpackEntry.js +0 -6
  281. package/dist/webpackEntry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { WithServerSideProps } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n params,\n searchParams,\n}: {\n config: Promise<SanitizedConfig>\n params: {\n segments: string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = `${adminRoute}${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const { DefaultView, initPageOptions, templateClassName, templateType } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n searchParams,\n segments,\n })\n\n let dbHasUser = false\n\n if (!DefaultView) {\n notFound()\n }\n\n const initPageResult = await initPage(initPageOptions)\n\n if (initPageResult) {\n dbHasUser = await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc)\n\n const routeWithAdmin = `${adminRoute}${createFirstUserRoute}`\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === routeWithAdmin) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== routeWithAdmin && !disableLocalStrategy) {\n redirect(routeWithAdmin)\n }\n\n if (dbHasUser && currentRoute === routeWithAdmin) {\n redirect(adminRoute)\n }\n }\n\n const RenderedView = (\n <WithServerSideProps\n Component={DefaultView}\n serverOnlyProps={\n {\n initPageResult,\n params,\n searchParams,\n } as any\n }\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult.visibleEntities?.collections,\n globals: initPageResult.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"names":["WithServerSideProps","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","params","searchParams","admin","routes","createFirstUser","createFirstUserRoute","user","userSlug","adminRoute","currentRoute","Array","isArray","segments","join","DefaultView","initPageOptions","templateClassName","templateType","dbHasUser","initPageResult","req","payload","db","findOne","collection","then","doc","routeWithAdmin","collectionConfig","collections","find","slug","disableLocalStrategy","auth","RenderedView","Component","serverOnlyProps","className","i18n","locale","permissions","visibleEntities","globals"],"mappings":";AAIA,SAASA,mBAAmB,QAAQ,wBAAuB;AAC3D,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,qBAAoB;AACvD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,oCAAmC;AAC5D,SAASC,iBAAiB,QAAQ,yBAAwB;AAE1D,SAASC,oBAAoB,QAAQ,YAAW;AAShD,OAAO,MAAMC,WAAW,OAAO,EAC7BC,QAAQC,aAAa,EACrBC,MAAM,EACNC,YAAY,EASb;IACC,MAAMH,SAAS,MAAMC;IAErB,MAAM,EACJG,OAAO,EACLC,QAAQ,EAAEC,iBAAiBC,oBAAoB,EAAE,EACjDC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAMW,eAAe,CAAC,EAAED,WAAW,EAAEE,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAI,CAAC,CAAC,EAAEZ,OAAOY,QAAQ,CAACC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAE5G,MAAMD,WAAWF,MAAMC,OAAO,CAACX,OAAOY,QAAQ,IAAIZ,OAAOY,QAAQ,GAAG,EAAE;IAEtE,MAAM,EAAEE,WAAW,EAAEC,eAAe,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGtB,kBAAkB;QAC1Fa;QACAV;QACAW;QACAR;QACAW;IACF;IAEA,IAAIM,YAAY;IAEhB,IAAI,CAACJ,aAAa;QAChB1B;IACF;IAEA,MAAM+B,iBAAiB,MAAMzB,SAASqB;IAEtC,IAAII,gBAAgB;QAClBD,YAAY,MAAMC,gBAAgBC,IAAIC,QAAQC,GAC3CC,QAAQ;YACPC,YAAYjB;YACZa,KAAKD,gBAAgBC;QACvB,IACEK,KAAK,CAACC,MAAQ,CAAC,CAACA;QAEpB,MAAMC,iBAAiB,CAAC,EAAEnB,WAAW,EAAEH,qBAAqB,CAAC;QAE7D,MAAMuB,mBAAmB9B,OAAO+B,WAAW,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASxB;QACxE,MAAMyB,uBAAuBJ,kBAAkBK,MAAMD;QAErD,IAAIA,wBAAwBvB,iBAAiBkB,gBAAgB;YAC3DtC,SAASmB;QACX;QAEA,IAAI,CAACU,aAAaT,iBAAiBkB,kBAAkB,CAACK,sBAAsB;YAC1E3C,SAASsC;QACX;QAEA,IAAIT,aAAaT,iBAAiBkB,gBAAgB;YAChDtC,SAASmB;QACX;IACF;IAEA,MAAM0B,6BACJ,KAAC/C;QACCgD,WAAWrB;QACXsB,iBACE;YACEjB;YACAnB;YACAC;QACF;;IAKN,qBACE,MAACV;;YACE,CAAC0B,8BAAgB,KAAC1B;0BAAU2C;;YAC5BjB,iBAAiB,2BAChB,KAACxB;gBAAgB4C,WAAWrB;0BAAoBkB;;YAEjDjB,iBAAiB,2BAChB,KAACzB;gBACC8C,MAAMnB,gBAAgBC,IAAIkB;gBAC1BC,QAAQpB,gBAAgBoB;gBACxBvC,QAAQA;gBACRqB,SAASF,gBAAgBC,IAAIC;gBAC7BmB,aAAarB,gBAAgBqB;gBAC7BvC,cAAcA;gBACdK,MAAMa,gBAAgBC,IAAId;gBAC1BmC,iBAAiB;oBACf,+KAA+K;oBAC/K,2EAA2E;oBAC3EZ,aAAaV,eAAesB,eAAe,EAAEZ;oBAC7Ca,SAASvB,eAAesB,eAAe,EAAEC;gBAC3C;0BAECR;;;;AAKX,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { WithServerSideProps, formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n params,\n searchParams,\n}: {\n config: Promise<SanitizedConfig>\n params: {\n segments: string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: `${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const { DefaultView, initPageOptions, templateClassName, templateType } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n searchParams,\n segments,\n })\n\n let dbHasUser = false\n\n if (!DefaultView) {\n notFound()\n }\n\n const initPageResult = await initPage(initPageOptions)\n\n if (initPageResult) {\n dbHasUser = await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc)\n\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n const RenderedView = (\n <WithServerSideProps\n Component={DefaultView}\n serverOnlyProps={\n {\n initPageResult,\n params,\n searchParams,\n } as any\n }\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult.visibleEntities?.collections,\n globals: initPageResult.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"names":["WithServerSideProps","formatAdminURL","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","params","searchParams","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","initPageOptions","templateClassName","templateType","dbHasUser","initPageResult","req","payload","db","findOne","collection","then","doc","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","RenderedView","Component","serverOnlyProps","className","i18n","locale","permissions","visibleEntities","globals"],"mappings":";AAIA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,wBAAuB;AAC3E,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,qBAAoB;AACvD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,oCAAmC;AAC5D,SAASC,iBAAiB,QAAQ,yBAAwB;AAE1D,SAASC,oBAAoB,QAAQ,YAAW;AAShD,OAAO,MAAMC,WAAW,OAAO,EAC7BC,QAAQC,aAAa,EACrBC,MAAM,EACNC,YAAY,EASb;IACC,MAAMH,SAAS,MAAMC;IAErB,MAAM,EACJG,OAAO,EACLC,QAAQ,EAAEC,iBAAiBC,qBAAqB,EAAE,EAClDC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAMW,eAAetB,eAAe;QAClCqB;QACAE,MAAM,CAAC,EAAEC,MAAMC,OAAO,CAACZ,OAAOa,QAAQ,IAAI,CAAC,CAAC,EAAEb,OAAOa,QAAQ,CAACC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAClF;IAEA,MAAMD,WAAWF,MAAMC,OAAO,CAACZ,OAAOa,QAAQ,IAAIb,OAAOa,QAAQ,GAAG,EAAE;IAEtE,MAAM,EAAEE,WAAW,EAAEC,eAAe,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGvB,kBAAkB;QAC1Fa;QACAV;QACAW;QACAR;QACAY;IACF;IAEA,IAAIM,YAAY;IAEhB,IAAI,CAACJ,aAAa;QAChB3B;IACF;IAEA,MAAMgC,iBAAiB,MAAM1B,SAASsB;IAEtC,IAAII,gBAAgB;QAClBD,YAAY,MAAMC,gBAAgBC,IAAIC,QAAQC,GAC3CC,QAAQ;YACPC,YAAYlB;YACZc,KAAKD,gBAAgBC;QACvB,IACEK,KAAK,CAACC,MAAQ,CAAC,CAACA;QAEpB,MAAMC,uBAAuBzC,eAAe;YAAEqB;YAAYE,MAAML;QAAsB;QAEtF,MAAMwB,mBAAmB/B,OAAOgC,WAAW,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASzB;QACxE,MAAM0B,uBAAuBJ,kBAAkBK,MAAMD;QAErD,IAAIA,wBAAwBxB,iBAAiBmB,sBAAsB;YACjEvC,SAASmB;QACX;QAEA,IAAI,CAACW,aAAaV,iBAAiBmB,wBAAwB,CAACK,sBAAsB;YAChF5C,SAASuC;QACX;QAEA,IAAIT,aAAaV,iBAAiBmB,sBAAsB;YACtDvC,SAASmB;QACX;IACF;IAEA,MAAM2B,6BACJ,KAACjD;QACCkD,WAAWrB;QACXsB,iBACE;YACEjB;YACApB;YACAC;QACF;;IAKN,qBACE,MAACV;;YACE,CAAC2B,8BAAgB,KAAC3B;0BAAU4C;;YAC5BjB,iBAAiB,2BAChB,KAACzB;gBAAgB6C,WAAWrB;0BAAoBkB;;YAEjDjB,iBAAiB,2BAChB,KAAC1B;gBACC+C,MAAMnB,gBAAgBC,IAAIkB;gBAC1BC,QAAQpB,gBAAgBoB;gBACxBxC,QAAQA;gBACRsB,SAASF,gBAAgBC,IAAIC;gBAC7BmB,aAAarB,gBAAgBqB;gBAC7BxC,cAAcA;gBACdK,MAAMc,gBAAgBC,IAAIf;gBAC1BoC,iBAAiB;oBACf,+KAA+K;oBAC/K,2EAA2E;oBAC3EZ,aAAaV,eAAesB,eAAe,EAAEZ;oBAC7Ca,SAASvB,eAAesB,eAAe,EAAEC;gBAC3C;0BAECR;;;;AAKX,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Unauthorized/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAMjD,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAIxD,eAAO,MAAM,gBAAgB,EAAE,kBAuB9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Unauthorized/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAMjD,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAIxD,eAAO,MAAM,gBAAgB,EAAE,kBA6B9B,CAAA"}
@@ -20,6 +20,7 @@ export const UnauthorizedView = ({ initPageResult })=>{
20
20
  Link: Link,
21
21
  className: `${baseClass}__button`,
22
22
  el: "link",
23
+ size: "large",
23
24
  to: logoutRoute,
24
25
  children: i18n.t('authentication:logOut')
25
26
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Unauthorized/index.tsx"],"sourcesContent":["import type { AdminViewComponent } from 'payload'\n\nimport { Button, Gutter } from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport { generateUnauthorizedMetadata } from './meta.js'\n\nconst baseClass = 'unauthorized'\n\nexport const UnauthorizedView: AdminViewComponent = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: {\n config: {\n admin: {\n routes: { logout: logoutRoute },\n },\n },\n },\n },\n } = initPageResult\n\n return (\n <Gutter className={baseClass}>\n <h2>{i18n.t('error:unauthorized')}</h2>\n <p>{i18n.t('error:notAllowedToAccessPage')}</p>\n <Button Link={Link} className={`${baseClass}__button`} el=\"link\" to={logoutRoute}>\n {i18n.t('authentication:logOut')}\n </Button>\n </Gutter>\n )\n}\n"],"names":["Button","Gutter","LinkImport","React","Link","default","generateUnauthorizedMetadata","baseClass","UnauthorizedView","initPageResult","req","i18n","payload","config","admin","routes","logout","logoutRoute","className","h2","t","p","el","to"],"mappings":";AAEA,SAASA,MAAM,EAAEC,MAAM,QAAQ,iBAAgB;AAC/C,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAIzB,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AAEpC,SAASI,4BAA4B,QAAQ,YAAW;AAExD,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAAuC,CAAC,EAAEC,cAAc,EAAE;IACrE,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EACPC,QAAQ,EACNC,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACF,EACF,EACF,EACF,GAAGR;IAEJ,qBACE,MAACR;QAAOiB,WAAWX;;0BACjB,KAACY;0BAAIR,KAAKS,CAAC,CAAC;;0BACZ,KAACC;0BAAGV,KAAKS,CAAC,CAAC;;0BACX,KAACpB;gBAAOI,MAAMA;gBAAMc,WAAW,CAAC,EAAEX,UAAU,QAAQ,CAAC;gBAAEe,IAAG;gBAAOC,IAAIN;0BAClEN,KAAKS,CAAC,CAAC;;;;AAIhB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Unauthorized/index.tsx"],"sourcesContent":["import type { AdminViewComponent } from 'payload'\n\nimport { Button, Gutter } from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport { generateUnauthorizedMetadata } from './meta.js'\n\nconst baseClass = 'unauthorized'\n\nexport const UnauthorizedView: AdminViewComponent = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: {\n config: {\n admin: {\n routes: { logout: logoutRoute },\n },\n },\n },\n },\n } = initPageResult\n\n return (\n <Gutter className={baseClass}>\n <h2>{i18n.t('error:unauthorized')}</h2>\n <p>{i18n.t('error:notAllowedToAccessPage')}</p>\n <Button\n Link={Link}\n className={`${baseClass}__button`}\n el=\"link\"\n size=\"large\"\n to={logoutRoute}\n >\n {i18n.t('authentication:logOut')}\n </Button>\n </Gutter>\n )\n}\n"],"names":["Button","Gutter","LinkImport","React","Link","default","generateUnauthorizedMetadata","baseClass","UnauthorizedView","initPageResult","req","i18n","payload","config","admin","routes","logout","logoutRoute","className","h2","t","p","el","size","to"],"mappings":";AAEA,SAASA,MAAM,EAAEC,MAAM,QAAQ,iBAAgB;AAC/C,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAIzB,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AAEpC,SAASI,4BAA4B,QAAQ,YAAW;AAExD,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAAuC,CAAC,EAAEC,cAAc,EAAE;IACrE,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EACPC,QAAQ,EACNC,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACF,EACF,EACF,EACF,GAAGR;IAEJ,qBACE,MAACR;QAAOiB,WAAWX;;0BACjB,KAACY;0BAAIR,KAAKS,CAAC,CAAC;;0BACZ,KAACC;0BAAGV,KAAKS,CAAC,CAAC;;0BACX,KAACpB;gBACCI,MAAMA;gBACNc,WAAW,CAAC,EAAEX,UAAU,QAAQ,CAAC;gBACjCe,IAAG;gBACHC,MAAK;gBACLC,IAAIP;0BAEHN,KAAKS,CAAC,CAAC;;;;AAIhB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Verify/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,eAAe,WAAW,CAAA;AAEvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoD3C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Verify/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,eAAe,WAAW,CAAA;AAEvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoD3C,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { formatAdminURL } from '@payloadcms/ui/shared';
2
3
  import { redirect } from 'next/navigation.js';
3
4
  import React from 'react';
4
5
  import { Logo } from '../../elements/Logo/index.js';
@@ -17,10 +18,16 @@ export const Verify = async ({ initPageResult, params, searchParams })=>{
17
18
  collection: collectionSlug,
18
19
  token
19
20
  });
20
- return redirect(`${adminRoute}/login`);
21
+ return redirect(formatAdminURL({
22
+ adminRoute,
23
+ path: '/login'
24
+ }));
21
25
  } catch (e) {
22
26
  // already verified
23
- if (e?.status === 202) redirect(`${adminRoute}/login`);
27
+ if (e?.status === 202) redirect(formatAdminURL({
28
+ adminRoute,
29
+ path: '/login'
30
+ }));
24
31
  textToRender = req.t('authentication:unableToVerify');
25
32
  }
26
33
  return /*#__PURE__*/ _jsxs(React.Fragment, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Verify/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\n\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport { Logo } from '../../elements/Logo/index.js'\nimport './index.scss'\n\nexport const verifyBaseClass = 'verify'\n\nexport { generateVerifyMetadata } from './meta.js'\n\nexport const Verify: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n // /:collectionSlug/verify/:token\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [collectionSlug, verify, token] = params.segments\n const { locale, permissions, req } = initPageResult\n\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n let textToRender\n\n try {\n await req.payload.verifyEmail({\n collection: collectionSlug,\n token,\n })\n\n return redirect(`${adminRoute}/login`)\n } catch (e) {\n // already verified\n if (e?.status === 202) redirect(`${adminRoute}/login`)\n textToRender = req.t('authentication:unableToVerify')\n }\n\n return (\n <React.Fragment>\n <div className={`${verifyBaseClass}__brand`}>\n <Logo\n i18n={i18n}\n locale={locale}\n params={params}\n payload={payload}\n permissions={permissions}\n searchParams={searchParams}\n user={user}\n />\n </div>\n <h2>{textToRender}</h2>\n </React.Fragment>\n )\n}\n"],"names":["redirect","React","Logo","verifyBaseClass","generateVerifyMetadata","Verify","initPageResult","params","searchParams","collectionSlug","verify","token","segments","locale","permissions","req","i18n","payload","config","user","routes","admin","adminRoute","textToRender","verifyEmail","collection","e","status","t","Fragment","div","className","h2"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,IAAI,QAAQ,+BAA8B;AAGnD,OAAO,MAAMC,kBAAkB,SAAQ;AAEvC,SAASC,sBAAsB,QAAQ,YAAW;AAElD,OAAO,MAAMC,SAAmC,OAAO,EACrDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,iCAAiC;IACjC,6DAA6D;IAC7D,MAAM,CAACC,gBAAgBC,QAAQC,MAAM,GAAGJ,OAAOK,QAAQ;IACvD,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGT;IAErC,MAAM,EACJU,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC9B,GAAGJ;IAEJ,IAAIK;IAEJ,IAAI;QACF,MAAMR,IAAIE,OAAO,CAACO,WAAW,CAAC;YAC5BC,YAAYhB;YACZE;QACF;QAEA,OAAOX,SAAS,CAAC,EAAEsB,WAAW,MAAM,CAAC;IACvC,EAAE,OAAOI,GAAG;QACV,mBAAmB;QACnB,IAAIA,GAAGC,WAAW,KAAK3B,SAAS,CAAC,EAAEsB,WAAW,MAAM,CAAC;QACrDC,eAAeR,IAAIa,CAAC,CAAC;IACvB;IAEA,qBACE,MAAC3B,MAAM4B,QAAQ;;0BACb,KAACC;gBAAIC,WAAW,CAAC,EAAE5B,gBAAgB,OAAO,CAAC;0BACzC,cAAA,KAACD;oBACCc,MAAMA;oBACNH,QAAQA;oBACRN,QAAQA;oBACRU,SAASA;oBACTH,aAAaA;oBACbN,cAAcA;oBACdW,MAAMA;;;0BAGV,KAACa;0BAAIT;;;;AAGX,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Verify/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport { Logo } from '../../elements/Logo/index.js'\nimport './index.scss'\n\nexport const verifyBaseClass = 'verify'\n\nexport { generateVerifyMetadata } from './meta.js'\n\nexport const Verify: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n // /:collectionSlug/verify/:token\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [collectionSlug, verify, token] = params.segments\n const { locale, permissions, req } = initPageResult\n\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n let textToRender\n\n try {\n await req.payload.verifyEmail({\n collection: collectionSlug,\n token,\n })\n\n return redirect(formatAdminURL({ adminRoute, path: '/login' }))\n } catch (e) {\n // already verified\n if (e?.status === 202) redirect(formatAdminURL({ adminRoute, path: '/login' }))\n textToRender = req.t('authentication:unableToVerify')\n }\n\n return (\n <React.Fragment>\n <div className={`${verifyBaseClass}__brand`}>\n <Logo\n i18n={i18n}\n locale={locale}\n params={params}\n payload={payload}\n permissions={permissions}\n searchParams={searchParams}\n user={user}\n />\n </div>\n <h2>{textToRender}</h2>\n </React.Fragment>\n )\n}\n"],"names":["formatAdminURL","redirect","React","Logo","verifyBaseClass","generateVerifyMetadata","Verify","initPageResult","params","searchParams","collectionSlug","verify","token","segments","locale","permissions","req","i18n","payload","config","user","routes","admin","adminRoute","textToRender","verifyEmail","collection","path","e","status","t","Fragment","div","className","h2"],"mappings":";AAEA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,IAAI,QAAQ,+BAA8B;AAGnD,OAAO,MAAMC,kBAAkB,SAAQ;AAEvC,SAASC,sBAAsB,QAAQ,YAAW;AAElD,OAAO,MAAMC,SAAmC,OAAO,EACrDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,iCAAiC;IACjC,6DAA6D;IAC7D,MAAM,CAACC,gBAAgBC,QAAQC,MAAM,GAAGJ,OAAOK,QAAQ;IACvD,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGT;IAErC,MAAM,EACJU,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC9B,GAAGJ;IAEJ,IAAIK;IAEJ,IAAI;QACF,MAAMR,IAAIE,OAAO,CAACO,WAAW,CAAC;YAC5BC,YAAYhB;YACZE;QACF;QAEA,OAAOX,SAASD,eAAe;YAAEuB;YAAYI,MAAM;QAAS;IAC9D,EAAE,OAAOC,GAAG;QACV,mBAAmB;QACnB,IAAIA,GAAGC,WAAW,KAAK5B,SAASD,eAAe;YAAEuB;YAAYI,MAAM;QAAS;QAC5EH,eAAeR,IAAIc,CAAC,CAAC;IACvB;IAEA,qBACE,MAAC5B,MAAM6B,QAAQ;;0BACb,KAACC;gBAAIC,WAAW,CAAC,EAAE7B,gBAAgB,OAAO,CAAC;0BACzC,cAAA,KAACD;oBACCc,MAAMA;oBACNH,QAAQA;oBACRN,QAAQA;oBACRU,SAASA;oBACTH,aAAaA;oBACbN,cAAcA;oBACdW,MAAMA;;;0BAGV,KAACc;0BAAIV;;;;AAGX,EAAC"}
@@ -1,5 +1,4 @@
1
- import type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap';
2
- import type { ClientCollectionConfig, ClientGlobalConfig } from 'payload';
1
+ import type { ClientCollectionConfig, ClientGlobalConfig, FieldMap } from 'payload';
3
2
  import type React from 'react';
4
3
  export declare const SetStepNav: React.FC<{
5
4
  collectionConfig?: ClientCollectionConfig;
@@ -9,6 +8,5 @@ export declare const SetStepNav: React.FC<{
9
8
  globalConfig?: ClientGlobalConfig;
10
9
  globalSlug?: string;
11
10
  id?: number | string;
12
- mostRecentDoc: any;
13
11
  }>;
14
12
  //# sourceMappingURL=SetStepNav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetStepNav.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/SetStepNav.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,EAAE,GAAG,CAAA;CACnB,CA4GA,CAAA"}
1
+ {"version":3,"file":"SetStepNav.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/SetStepNav.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACnF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CA4GA,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { getTranslation } from '@payloadcms/translations';
2
2
  import { useConfig, useLocale, useStepNav, useTranslation } from '@payloadcms/ui';
3
- import { formatDate } from '@payloadcms/ui/shared';
3
+ import { formatAdminURL, formatDate } from '@payloadcms/ui/shared';
4
4
  import { useEffect } from 'react';
5
- export const SetStepNav = ({ id, collectionConfig, collectionSlug, doc, fieldMap, globalConfig, globalSlug, mostRecentDoc })=>{
5
+ export const SetStepNav = ({ id, collectionConfig, collectionSlug, doc, fieldMap, globalConfig, globalSlug })=>{
6
6
  const config = useConfig();
7
7
  const { setStepNav } = useStepNav();
8
8
  const { i18n, t } = useTranslation();
@@ -14,38 +14,48 @@ export const SetStepNav = ({ id, collectionConfig, collectionSlug, doc, fieldMap
14
14
  let docLabel = '';
15
15
  const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id';
16
16
  const pluralLabel = collectionConfig?.labels?.plural;
17
- if (mostRecentDoc) {
17
+ const formattedDoc = doc.version ? doc.version : doc;
18
+ if (formattedDoc) {
18
19
  if (useAsTitle !== 'id') {
19
20
  const titleField = fieldMap.find((f)=>{
20
21
  const { isFieldAffectingData } = f;
21
22
  const fieldName = 'name' in f ? f.name : undefined;
22
23
  return Boolean(isFieldAffectingData && fieldName === useAsTitle);
23
24
  });
24
- if (titleField && mostRecentDoc[useAsTitle]) {
25
+ if (titleField && formattedDoc[useAsTitle]) {
25
26
  if (titleField.localized) {
26
- docLabel = mostRecentDoc[useAsTitle]?.[locale.code];
27
+ docLabel = formattedDoc[useAsTitle]?.[locale.code];
27
28
  } else {
28
- docLabel = mostRecentDoc[useAsTitle];
29
+ docLabel = formattedDoc[useAsTitle];
29
30
  }
30
31
  } else {
31
32
  docLabel = `[${t('general:untitled')}]`;
32
33
  }
33
34
  } else {
34
- docLabel = mostRecentDoc.id;
35
+ docLabel = doc.id;
35
36
  }
36
37
  }
37
38
  nav = [
38
39
  {
39
40
  label: getTranslation(pluralLabel, i18n),
40
- url: `${adminRoute}/collections/${collectionSlug}`
41
+ url: formatAdminURL({
42
+ adminRoute,
43
+ path: `/collections/${collectionSlug}`
44
+ })
41
45
  },
42
46
  {
43
47
  label: docLabel,
44
- url: `${adminRoute}/collections/${collectionSlug}/${id}`
48
+ url: formatAdminURL({
49
+ adminRoute,
50
+ path: `/collections/${collectionSlug}/${id}`
51
+ })
45
52
  },
46
53
  {
47
54
  label: 'Versions',
48
- url: `${adminRoute}/collections/${collectionSlug}/${id}/versions`
55
+ url: formatAdminURL({
56
+ adminRoute,
57
+ path: `/collections/${collectionSlug}/${id}/versions`
58
+ })
49
59
  },
50
60
  {
51
61
  label: doc?.createdAt ? formatDate({
@@ -60,11 +70,17 @@ export const SetStepNav = ({ id, collectionConfig, collectionSlug, doc, fieldMap
60
70
  nav = [
61
71
  {
62
72
  label: globalConfig.label,
63
- url: `${adminRoute}/globals/${globalConfig.slug}`
73
+ url: formatAdminURL({
74
+ adminRoute,
75
+ path: `/globals/${globalConfig.slug}`
76
+ })
64
77
  },
65
78
  {
66
79
  label: 'Versions',
67
- url: `${adminRoute}/globals/${globalConfig.slug}/versions`
80
+ url: formatAdminURL({
81
+ adminRoute,
82
+ path: `/globals/${globalConfig.slug}/versions`
83
+ })
68
84
  },
69
85
  {
70
86
  label: doc?.createdAt ? formatDate({
@@ -82,7 +98,6 @@ export const SetStepNav = ({ id, collectionConfig, collectionSlug, doc, fieldMap
82
98
  collectionSlug,
83
99
  globalSlug,
84
100
  doc,
85
- mostRecentDoc,
86
101
  id,
87
102
  locale,
88
103
  t,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Default/SetStepNav.tsx"],"sourcesContent":["import type { StepNavItem } from '@payloadcms/ui'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\nimport type React from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useLocale, useStepNav, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { useEffect } from 'react'\n\nexport const SetStepNav: React.FC<{\n collectionConfig?: ClientCollectionConfig\n collectionSlug?: string\n doc: any\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n globalSlug?: string\n id?: number | string\n mostRecentDoc: any\n}> = ({\n id,\n collectionConfig,\n collectionSlug,\n doc,\n fieldMap,\n globalConfig,\n globalSlug,\n mostRecentDoc,\n}) => {\n const config = useConfig()\n const { setStepNav } = useStepNav()\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n useEffect(() => {\n let nav: StepNavItem[] = []\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n if (collectionSlug) {\n let docLabel = ''\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n const pluralLabel = collectionConfig?.labels?.plural\n\n if (mostRecentDoc) {\n if (useAsTitle !== 'id') {\n const titleField = fieldMap.find((f) => {\n const { isFieldAffectingData } = f\n const fieldName = 'name' in f ? f.name : undefined\n return Boolean(isFieldAffectingData && fieldName === useAsTitle)\n })\n\n if (titleField && mostRecentDoc[useAsTitle]) {\n if (titleField.localized) {\n docLabel = mostRecentDoc[useAsTitle]?.[locale.code]\n } else {\n docLabel = mostRecentDoc[useAsTitle]\n }\n } else {\n docLabel = `[${t('general:untitled')}]`\n }\n } else {\n docLabel = mostRecentDoc.id\n }\n }\n\n nav = [\n {\n label: getTranslation(pluralLabel, i18n),\n url: `${adminRoute}/collections/${collectionSlug}`,\n },\n {\n label: docLabel,\n url: `${adminRoute}/collections/${collectionSlug}/${id}`,\n },\n {\n label: 'Versions',\n url: `${adminRoute}/collections/${collectionSlug}/${id}/versions`,\n },\n {\n label: doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: dateFormat })\n : '',\n },\n ]\n }\n\n if (globalSlug) {\n nav = [\n {\n label: globalConfig.label,\n url: `${adminRoute}/globals/${globalConfig.slug}`,\n },\n {\n label: 'Versions',\n url: `${adminRoute}/globals/${globalConfig.slug}/versions`,\n },\n {\n label: doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: dateFormat })\n : '',\n },\n ]\n }\n\n setStepNav(nav)\n }, [\n config,\n setStepNav,\n collectionSlug,\n globalSlug,\n doc,\n mostRecentDoc,\n id,\n locale,\n t,\n i18n,\n collectionConfig,\n fieldMap,\n globalConfig,\n ])\n\n return null\n}\n"],"names":["getTranslation","useConfig","useLocale","useStepNav","useTranslation","formatDate","useEffect","SetStepNav","id","collectionConfig","collectionSlug","doc","fieldMap","globalConfig","globalSlug","mostRecentDoc","config","setStepNav","i18n","t","locale","nav","admin","dateFormat","routes","adminRoute","docLabel","useAsTitle","pluralLabel","labels","plural","titleField","find","f","isFieldAffectingData","fieldName","name","undefined","Boolean","localized","code","label","url","createdAt","date","pattern","slug"],"mappings":"AAKA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,cAAc,QAAQ,iBAAgB;AACjF,SAASC,UAAU,QAAQ,wBAAuB;AAClD,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,aASR,CAAC,EACJC,EAAE,EACFC,gBAAgB,EAChBC,cAAc,EACdC,GAAG,EACHC,QAAQ,EACRC,YAAY,EACZC,UAAU,EACVC,aAAa,EACd;IACC,MAAMC,SAASf;IACf,MAAM,EAAEgB,UAAU,EAAE,GAAGd;IACvB,MAAM,EAAEe,IAAI,EAAEC,CAAC,EAAE,GAAGf;IACpB,MAAMgB,SAASlB;IAEfI,UAAU;QACR,IAAIe,MAAqB,EAAE;QAE3B,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACrBC,QAAQ,EAAEF,OAAOG,UAAU,EAAE,EAC9B,GAAGT;QAEJ,IAAIN,gBAAgB;YAClB,IAAIgB,WAAW;YAEf,MAAMC,aAAalB,kBAAkBa,OAAOK,cAAc;YAC1D,MAAMC,cAAcnB,kBAAkBoB,QAAQC;YAE9C,IAAIf,eAAe;gBACjB,IAAIY,eAAe,MAAM;oBACvB,MAAMI,aAAanB,SAASoB,IAAI,CAAC,CAACC;wBAChC,MAAM,EAAEC,oBAAoB,EAAE,GAAGD;wBACjC,MAAME,YAAY,UAAUF,IAAIA,EAAEG,IAAI,GAAGC;wBACzC,OAAOC,QAAQJ,wBAAwBC,cAAcR;oBACvD;oBAEA,IAAII,cAAchB,aAAa,CAACY,WAAW,EAAE;wBAC3C,IAAII,WAAWQ,SAAS,EAAE;4BACxBb,WAAWX,aAAa,CAACY,WAAW,EAAE,CAACP,OAAOoB,IAAI,CAAC;wBACrD,OAAO;4BACLd,WAAWX,aAAa,CAACY,WAAW;wBACtC;oBACF,OAAO;wBACLD,WAAW,CAAC,CAAC,EAAEP,EAAE,oBAAoB,CAAC,CAAC;oBACzC;gBACF,OAAO;oBACLO,WAAWX,cAAcP,EAAE;gBAC7B;YACF;YAEAa,MAAM;gBACJ;oBACEoB,OAAOzC,eAAe4B,aAAaV;oBACnCwB,KAAK,CAAC,EAAEjB,WAAW,aAAa,EAAEf,eAAe,CAAC;gBACpD;gBACA;oBACE+B,OAAOf;oBACPgB,KAAK,CAAC,EAAEjB,WAAW,aAAa,EAAEf,eAAe,CAAC,EAAEF,GAAG,CAAC;gBAC1D;gBACA;oBACEiC,OAAO;oBACPC,KAAK,CAAC,EAAEjB,WAAW,aAAa,EAAEf,eAAe,CAAC,EAAEF,GAAG,SAAS,CAAC;gBACnE;gBACA;oBACEiC,OAAO9B,KAAKgC,YACRtC,WAAW;wBAAEuC,MAAMjC,IAAIgC,SAAS;wBAAEzB;wBAAM2B,SAAStB;oBAAW,KAC5D;gBACN;aACD;QACH;QAEA,IAAIT,YAAY;YACdO,MAAM;gBACJ;oBACEoB,OAAO5B,aAAa4B,KAAK;oBACzBC,KAAK,CAAC,EAAEjB,WAAW,SAAS,EAAEZ,aAAaiC,IAAI,CAAC,CAAC;gBACnD;gBACA;oBACEL,OAAO;oBACPC,KAAK,CAAC,EAAEjB,WAAW,SAAS,EAAEZ,aAAaiC,IAAI,CAAC,SAAS,CAAC;gBAC5D;gBACA;oBACEL,OAAO9B,KAAKgC,YACRtC,WAAW;wBAAEuC,MAAMjC,IAAIgC,SAAS;wBAAEzB;wBAAM2B,SAAStB;oBAAW,KAC5D;gBACN;aACD;QACH;QAEAN,WAAWI;IACb,GAAG;QACDL;QACAC;QACAP;QACAI;QACAH;QACAI;QACAP;QACAY;QACAD;QACAD;QACAT;QACAG;QACAC;KACD;IAED,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Default/SetStepNav.tsx"],"sourcesContent":["import type { StepNavItem } from '@payloadcms/ui'\nimport type { ClientCollectionConfig, ClientGlobalConfig, FieldMap } from 'payload'\nimport type React from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useLocale, useStepNav, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL, formatDate } from '@payloadcms/ui/shared'\nimport { useEffect } from 'react'\n\nexport const SetStepNav: React.FC<{\n collectionConfig?: ClientCollectionConfig\n collectionSlug?: string\n doc: any\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n globalSlug?: string\n id?: number | string\n}> = ({ id, collectionConfig, collectionSlug, doc, fieldMap, globalConfig, globalSlug }) => {\n const config = useConfig()\n const { setStepNav } = useStepNav()\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n useEffect(() => {\n let nav: StepNavItem[] = []\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n if (collectionSlug) {\n let docLabel = ''\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n const pluralLabel = collectionConfig?.labels?.plural\n const formattedDoc = doc.version ? doc.version : doc\n\n if (formattedDoc) {\n if (useAsTitle !== 'id') {\n const titleField = fieldMap.find((f) => {\n const { isFieldAffectingData } = f\n const fieldName = 'name' in f ? f.name : undefined\n return Boolean(isFieldAffectingData && fieldName === useAsTitle)\n })\n\n if (titleField && formattedDoc[useAsTitle]) {\n if (titleField.localized) {\n docLabel = formattedDoc[useAsTitle]?.[locale.code]\n } else {\n docLabel = formattedDoc[useAsTitle]\n }\n } else {\n docLabel = `[${t('general:untitled')}]`\n }\n } else {\n docLabel = doc.id\n }\n }\n\n nav = [\n {\n label: getTranslation(pluralLabel, i18n),\n url: formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}` }),\n },\n {\n label: docLabel,\n url: formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}/${id}` }),\n },\n {\n label: 'Versions',\n url: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}/versions`,\n }),\n },\n {\n label: doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: dateFormat })\n : '',\n },\n ]\n }\n\n if (globalSlug) {\n nav = [\n {\n label: globalConfig.label,\n url: formatAdminURL({\n adminRoute,\n path: `/globals/${globalConfig.slug}`,\n }),\n },\n {\n label: 'Versions',\n url: formatAdminURL({\n adminRoute,\n path: `/globals/${globalConfig.slug}/versions`,\n }),\n },\n {\n label: doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: dateFormat })\n : '',\n },\n ]\n }\n\n setStepNav(nav)\n }, [\n config,\n setStepNav,\n collectionSlug,\n globalSlug,\n doc,\n id,\n locale,\n t,\n i18n,\n collectionConfig,\n fieldMap,\n globalConfig,\n ])\n\n return null\n}\n"],"names":["getTranslation","useConfig","useLocale","useStepNav","useTranslation","formatAdminURL","formatDate","useEffect","SetStepNav","id","collectionConfig","collectionSlug","doc","fieldMap","globalConfig","globalSlug","config","setStepNav","i18n","t","locale","nav","admin","dateFormat","routes","adminRoute","docLabel","useAsTitle","pluralLabel","labels","plural","formattedDoc","version","titleField","find","f","isFieldAffectingData","fieldName","name","undefined","Boolean","localized","code","label","url","path","createdAt","date","pattern","slug"],"mappings":"AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,cAAc,QAAQ,iBAAgB;AACjF,SAASC,cAAc,EAAEC,UAAU,QAAQ,wBAAuB;AAClE,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,aAQR,CAAC,EAAEC,EAAE,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,GAAG,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,UAAU,EAAE;IACrF,MAAMC,SAASf;IACf,MAAM,EAAEgB,UAAU,EAAE,GAAGd;IACvB,MAAM,EAAEe,IAAI,EAAEC,CAAC,EAAE,GAAGf;IACpB,MAAMgB,SAASlB;IAEfK,UAAU;QACR,IAAIc,MAAqB,EAAE;QAE3B,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACrBC,QAAQ,EAAEF,OAAOG,UAAU,EAAE,EAC9B,GAAGT;QAEJ,IAAIL,gBAAgB;YAClB,IAAIe,WAAW;YAEf,MAAMC,aAAajB,kBAAkBY,OAAOK,cAAc;YAC1D,MAAMC,cAAclB,kBAAkBmB,QAAQC;YAC9C,MAAMC,eAAenB,IAAIoB,OAAO,GAAGpB,IAAIoB,OAAO,GAAGpB;YAEjD,IAAImB,cAAc;gBAChB,IAAIJ,eAAe,MAAM;oBACvB,MAAMM,aAAapB,SAASqB,IAAI,CAAC,CAACC;wBAChC,MAAM,EAAEC,oBAAoB,EAAE,GAAGD;wBACjC,MAAME,YAAY,UAAUF,IAAIA,EAAEG,IAAI,GAAGC;wBACzC,OAAOC,QAAQJ,wBAAwBC,cAAcV;oBACvD;oBAEA,IAAIM,cAAcF,YAAY,CAACJ,WAAW,EAAE;wBAC1C,IAAIM,WAAWQ,SAAS,EAAE;4BACxBf,WAAWK,YAAY,CAACJ,WAAW,EAAE,CAACP,OAAOsB,IAAI,CAAC;wBACpD,OAAO;4BACLhB,WAAWK,YAAY,CAACJ,WAAW;wBACrC;oBACF,OAAO;wBACLD,WAAW,CAAC,CAAC,EAAEP,EAAE,oBAAoB,CAAC,CAAC;oBACzC;gBACF,OAAO;oBACLO,WAAWd,IAAIH,EAAE;gBACnB;YACF;YAEAY,MAAM;gBACJ;oBACEsB,OAAO3C,eAAe4B,aAAaV;oBACnC0B,KAAKvC,eAAe;wBAAEoB;wBAAYoB,MAAM,CAAC,aAAa,EAAElC,eAAe,CAAC;oBAAC;gBAC3E;gBACA;oBACEgC,OAAOjB;oBACPkB,KAAKvC,eAAe;wBAAEoB;wBAAYoB,MAAM,CAAC,aAAa,EAAElC,eAAe,CAAC,EAAEF,GAAG,CAAC;oBAAC;gBACjF;gBACA;oBACEkC,OAAO;oBACPC,KAAKvC,eAAe;wBAClBoB;wBACAoB,MAAM,CAAC,aAAa,EAAElC,eAAe,CAAC,EAAEF,GAAG,SAAS,CAAC;oBACvD;gBACF;gBACA;oBACEkC,OAAO/B,KAAKkC,YACRxC,WAAW;wBAAEyC,MAAMnC,IAAIkC,SAAS;wBAAE5B;wBAAM8B,SAASzB;oBAAW,KAC5D;gBACN;aACD;QACH;QAEA,IAAIR,YAAY;YACdM,MAAM;gBACJ;oBACEsB,OAAO7B,aAAa6B,KAAK;oBACzBC,KAAKvC,eAAe;wBAClBoB;wBACAoB,MAAM,CAAC,SAAS,EAAE/B,aAAamC,IAAI,CAAC,CAAC;oBACvC;gBACF;gBACA;oBACEN,OAAO;oBACPC,KAAKvC,eAAe;wBAClBoB;wBACAoB,MAAM,CAAC,SAAS,EAAE/B,aAAamC,IAAI,CAAC,SAAS,CAAC;oBAChD;gBACF;gBACA;oBACEN,OAAO/B,KAAKkC,YACRxC,WAAW;wBAAEyC,MAAMnC,IAAIkC,SAAS;wBAAE5B;wBAAM8B,SAASzB;oBAAW,KAC5D;gBACN;aACD;QACH;QAEAN,WAAWI;IACb,GAAG;QACDL;QACAC;QACAN;QACAI;QACAH;QACAH;QACAW;QACAD;QACAD;QACAR;QACAG;QACAC;KACD;IAED,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAiB,wBAAwB,EAAE,MAAM,YAAY,CAAA;AASzE,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA6IjE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAiB,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAQzE,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAiIjE,CAAA"}
@@ -8,10 +8,9 @@ import RenderFieldsToDiff from '../RenderFieldsToDiff/index.js';
8
8
  import Restore from '../Restore/index.js';
9
9
  import { SelectComparison } from '../SelectComparison/index.js';
10
10
  import { SelectLocales } from '../SelectLocales/index.js';
11
- import { mostRecentVersionOption } from '../shared.js';
12
11
  import { SetStepNav } from './SetStepNav.js';
13
12
  const baseClass = 'view-version';
14
- export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc, localeOptions, mostRecentDoc, publishedDoc, versionID })=>{
13
+ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc, latestDraftVersion, latestPublishedVersion, localeOptions, versionID })=>{
15
14
  const config = useConfig();
16
15
  const { i18n } = useTranslation();
17
16
  const { id, collectionSlug, globalSlug } = useDocumentInfo();
@@ -27,27 +26,27 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
27
26
  const [collectionConfig] = useState(()=>config.collections.find((collection)=>collection.slug === collectionSlug));
28
27
  const [globalConfig] = useState(()=>config.globals.find((global)=>global.slug === globalSlug));
29
28
  const [locales, setLocales] = useState(localeOptions);
30
- const [compareValue, setCompareValue] = useState(mostRecentVersionOption);
29
+ const [compareValue, setCompareValue] = useState();
31
30
  const { admin: { dateFormat }, localization, routes: { api: apiRoute }, serverURL } = config;
32
- const formattedCreatedAt = doc?.createdAt ? formatDate({
33
- date: doc.createdAt,
31
+ const versionCreatedAt = doc?.updatedAt ? formatDate({
32
+ date: doc.updatedAt,
34
33
  i18n,
35
34
  pattern: dateFormat
36
35
  }) : '';
37
- const originalDocFetchURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${collectionSlug || globalSlug}${collectionSlug ? `/${id}` : ''}`;
38
36
  const compareBaseURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${collectionSlug || globalSlug}/versions`;
39
- const compareFetchURL = compareValue?.value === 'mostRecent' || compareValue?.value === 'published' ? originalDocFetchURL : `${compareBaseURL}/${compareValue.value}`;
37
+ const compareFetchURL = compareValue?.value && `${compareBaseURL}/${compareValue.value}`;
40
38
  const [{ data: currentComparisonDoc }] = usePayloadAPI(compareFetchURL, {
41
39
  initialData: initialComparisonDoc,
42
40
  initialParams: {
43
41
  depth: 1,
44
42
  draft: 'true',
45
- locale: '*'
43
+ locale: 'all'
46
44
  }
47
45
  });
48
- const comparison = compareValue?.value === 'mostRecent' ? mostRecentDoc : compareValue?.value === 'published' ? publishedDoc : currentComparisonDoc?.version // the `version` key is only present on `versions` documents
46
+ const comparison = compareValue?.value && currentComparisonDoc?.version // the `version` key is only present on `versions` documents
49
47
  ;
50
48
  const canUpdate = docPermissions?.update?.permission;
49
+ const localeValues = locales && locales.map((locale)=>locale.value);
51
50
  return /*#__PURE__*/ _jsxs("main", {
52
51
  className: baseClass,
53
52
  children: [
@@ -61,8 +60,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
61
60
  fieldMap: fieldMap,
62
61
  globalConfig: globalConfig,
63
62
  globalSlug: globalSlug,
64
- id: id,
65
- mostRecentDoc: mostRecentDoc
63
+ id: id
66
64
  }),
67
65
  /*#__PURE__*/ _jsxs(Gutter, {
68
66
  className: `${baseClass}__wrap`,
@@ -80,7 +78,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
80
78
  className: `${baseClass}__header`,
81
79
  children: [
82
80
  /*#__PURE__*/ _jsx("h2", {
83
- children: formattedCreatedAt
81
+ children: versionCreatedAt
84
82
  }),
85
83
  canUpdate && /*#__PURE__*/ _jsx(Restore, {
86
84
  className: `${baseClass}__restore`,
@@ -88,7 +86,8 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
88
86
  globalSlug: globalSlug,
89
87
  label: collectionConfig?.labels.singular || globalConfig?.label,
90
88
  originalDocID: id,
91
- versionDate: formattedCreatedAt,
89
+ status: doc?.version?._status,
90
+ versionDate: versionCreatedAt,
92
91
  versionID: versionID
93
92
  })
94
93
  ]
@@ -100,9 +99,10 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
100
99
  children: [
101
100
  /*#__PURE__*/ _jsx(SelectComparison, {
102
101
  baseURL: compareBaseURL,
102
+ latestDraftVersion: latestDraftVersion,
103
+ latestPublishedVersion: latestPublishedVersion,
103
104
  onChange: setCompareValue,
104
105
  parentID: id,
105
- publishedDoc: publishedDoc,
106
106
  value: compareValue,
107
107
  versionID: versionID
108
108
  }),
@@ -119,7 +119,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
119
119
  fieldMap: fieldMap,
120
120
  fieldPermissions: docPermissions?.fields,
121
121
  i18n: i18n,
122
- locales: locales ? locales.map(({ label })=>typeof label === 'string' ? label : undefined) : [],
122
+ locales: localeValues,
123
123
  version: globalConfig ? {
124
124
  ...doc?.version,
125
125
  createdAt: doc?.version?.createdAt || doc.createdAt,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject } from 'payload'\n\nimport {\n Gutter,\n SetViewActions,\n useComponentMap,\n useConfig,\n useDocumentInfo,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport React, { useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport diffComponents from '../RenderFieldsToDiff/fields/index.js'\nimport RenderFieldsToDiff from '../RenderFieldsToDiff/index.js'\nimport Restore from '../Restore/index.js'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { SelectLocales } from '../SelectLocales/index.js'\nimport { mostRecentVersionOption } from '../shared.js'\nimport { SetStepNav } from './SetStepNav.js'\nimport './index.scss'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n doc,\n docPermissions,\n initialComparisonDoc,\n localeOptions,\n mostRecentDoc,\n publishedDoc,\n versionID,\n}) => {\n const config = useConfig()\n\n const { i18n } = useTranslation()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap, getFieldMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const [fieldMap] = useState(() => getFieldMap({ collectionSlug, globalSlug }))\n\n const [collectionConfig] = useState(() =>\n config.collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const [globalConfig] = useState(() => config.globals.find((global) => global.slug === globalSlug))\n\n const [locales, setLocales] = useState<OptionObject[]>(localeOptions)\n const [compareValue, setCompareValue] = useState<CompareOption>(mostRecentVersionOption)\n\n const {\n admin: { dateFormat },\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const formattedCreatedAt = doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: dateFormat })\n : ''\n\n const originalDocFetchURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${\n collectionSlug || globalSlug\n }${collectionSlug ? `/${id}` : ''}`\n\n const compareBaseURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${\n collectionSlug || globalSlug\n }/versions`\n\n const compareFetchURL =\n compareValue?.value === 'mostRecent' || compareValue?.value === 'published'\n ? originalDocFetchURL\n : `${compareBaseURL}/${compareValue.value}`\n\n const [{ data: currentComparisonDoc }] = usePayloadAPI(compareFetchURL, {\n initialData: initialComparisonDoc,\n initialParams: { depth: 1, draft: 'true', locale: '*' },\n })\n\n const comparison =\n compareValue?.value === 'mostRecent'\n ? mostRecentDoc\n : compareValue?.value === 'published'\n ? publishedDoc\n : currentComparisonDoc?.version // the `version` key is only present on `versions` documents\n\n const canUpdate = docPermissions?.update?.permission\n\n return (\n <main className={baseClass}>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Version} />\n <SetStepNav\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n doc={doc}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n globalSlug={globalSlug}\n id={id}\n mostRecentDoc={mostRecentDoc}\n />\n <Gutter className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header-wrap`}>\n <p className={`${baseClass}__created-at`}>\n {i18n.t('version:versionCreatedOn', {\n version: i18n.t(doc?.autosave ? 'version:autosavedVersion' : 'version:version'),\n })}\n </p>\n <header className={`${baseClass}__header`}>\n <h2>{formattedCreatedAt}</h2>\n {canUpdate && (\n <Restore\n className={`${baseClass}__restore`}\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={id}\n versionDate={formattedCreatedAt}\n versionID={versionID}\n />\n )}\n </header>\n </div>\n <div className={`${baseClass}__controls`}>\n <SelectComparison\n baseURL={compareBaseURL}\n onChange={setCompareValue}\n parentID={id}\n publishedDoc={publishedDoc}\n value={compareValue}\n versionID={versionID}\n />\n {localization && (\n <SelectLocales onChange={setLocales} options={localeOptions} value={locales} />\n )}\n </div>\n {doc?.version && (\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={docPermissions?.fields}\n i18n={i18n}\n locales={\n locales\n ? locales.map(({ label }) => (typeof label === 'string' ? label : undefined))\n : []\n }\n version={\n globalConfig\n ? {\n ...doc?.version,\n createdAt: doc?.version?.createdAt || doc.createdAt,\n updatedAt: doc?.version?.updatedAt || doc.updatedAt,\n }\n : doc?.version\n }\n />\n )}\n </Gutter>\n </main>\n )\n}\n"],"names":["Gutter","SetViewActions","useComponentMap","useConfig","useDocumentInfo","usePayloadAPI","useTranslation","formatDate","React","useState","diffComponents","RenderFieldsToDiff","Restore","SelectComparison","SelectLocales","mostRecentVersionOption","SetStepNav","baseClass","DefaultVersionView","doc","docPermissions","initialComparisonDoc","localeOptions","mostRecentDoc","publishedDoc","versionID","config","i18n","id","collectionSlug","globalSlug","getComponentMap","getFieldMap","componentMap","fieldMap","collectionConfig","collections","find","collection","slug","globalConfig","globals","global","locales","setLocales","compareValue","setCompareValue","admin","dateFormat","localization","routes","api","apiRoute","serverURL","formattedCreatedAt","createdAt","date","pattern","originalDocFetchURL","compareBaseURL","compareFetchURL","value","data","currentComparisonDoc","initialData","initialParams","depth","draft","locale","comparison","version","canUpdate","update","permission","main","className","actions","actionsMap","Edit","Version","div","p","t","autosave","header","h2","label","labels","singular","originalDocID","versionDate","baseURL","onChange","parentID","options","fieldPermissions","fields","map","undefined","updatedAt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject } from 'payload'\n\nimport {\n Gutter,\n SetViewActions,\n useComponentMap,\n useConfig,\n useDocumentInfo,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport React, { useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport diffComponents from '../RenderFieldsToDiff/fields/index.js'\nimport RenderFieldsToDiff from '../RenderFieldsToDiff/index.js'\nimport Restore from '../Restore/index.js'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { SelectLocales } from '../SelectLocales/index.js'\nimport { SetStepNav } from './SetStepNav.js'\nimport './index.scss'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n doc,\n docPermissions,\n initialComparisonDoc,\n latestDraftVersion,\n latestPublishedVersion,\n localeOptions,\n versionID,\n}) => {\n const config = useConfig()\n\n const { i18n } = useTranslation()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap, getFieldMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const [fieldMap] = useState(() => getFieldMap({ collectionSlug, globalSlug }))\n\n const [collectionConfig] = useState(() =>\n config.collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const [globalConfig] = useState(() => config.globals.find((global) => global.slug === globalSlug))\n\n const [locales, setLocales] = useState<OptionObject[]>(localeOptions)\n\n const [compareValue, setCompareValue] = useState<CompareOption>()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const versionCreatedAt = doc?.updatedAt\n ? formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })\n : ''\n\n const compareBaseURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${\n collectionSlug || globalSlug\n }/versions`\n\n const compareFetchURL = compareValue?.value && `${compareBaseURL}/${compareValue.value}`\n\n const [{ data: currentComparisonDoc }] = usePayloadAPI(compareFetchURL, {\n initialData: initialComparisonDoc,\n initialParams: { depth: 1, draft: 'true', locale: 'all' },\n })\n\n const comparison = compareValue?.value && currentComparisonDoc?.version // the `version` key is only present on `versions` documents\n\n const canUpdate = docPermissions?.update?.permission\n\n const localeValues = locales && locales.map((locale) => locale.value)\n\n return (\n <main className={baseClass}>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Version} />\n <SetStepNav\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n doc={doc}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n globalSlug={globalSlug}\n id={id}\n />\n <Gutter className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header-wrap`}>\n <p className={`${baseClass}__created-at`}>\n {i18n.t('version:versionCreatedOn', {\n version: i18n.t(doc?.autosave ? 'version:autosavedVersion' : 'version:version'),\n })}\n </p>\n <header className={`${baseClass}__header`}>\n <h2>{versionCreatedAt}</h2>\n {canUpdate && (\n <Restore\n className={`${baseClass}__restore`}\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={id}\n status={doc?.version?._status}\n versionDate={versionCreatedAt}\n versionID={versionID}\n />\n )}\n </header>\n </div>\n <div className={`${baseClass}__controls`}>\n <SelectComparison\n baseURL={compareBaseURL}\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n onChange={setCompareValue}\n parentID={id}\n value={compareValue}\n versionID={versionID}\n />\n {localization && (\n <SelectLocales onChange={setLocales} options={localeOptions} value={locales} />\n )}\n </div>\n {doc?.version && (\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={docPermissions?.fields}\n i18n={i18n}\n locales={localeValues}\n version={\n globalConfig\n ? {\n ...doc?.version,\n createdAt: doc?.version?.createdAt || doc.createdAt,\n updatedAt: doc?.version?.updatedAt || doc.updatedAt,\n }\n : doc?.version\n }\n />\n )}\n </Gutter>\n </main>\n )\n}\n"],"names":["Gutter","SetViewActions","useComponentMap","useConfig","useDocumentInfo","usePayloadAPI","useTranslation","formatDate","React","useState","diffComponents","RenderFieldsToDiff","Restore","SelectComparison","SelectLocales","SetStepNav","baseClass","DefaultVersionView","doc","docPermissions","initialComparisonDoc","latestDraftVersion","latestPublishedVersion","localeOptions","versionID","config","i18n","id","collectionSlug","globalSlug","getComponentMap","getFieldMap","componentMap","fieldMap","collectionConfig","collections","find","collection","slug","globalConfig","globals","global","locales","setLocales","compareValue","setCompareValue","admin","dateFormat","localization","routes","api","apiRoute","serverURL","versionCreatedAt","updatedAt","date","pattern","compareBaseURL","compareFetchURL","value","data","currentComparisonDoc","initialData","initialParams","depth","draft","locale","comparison","version","canUpdate","update","permission","localeValues","map","main","className","actions","actionsMap","Edit","Version","div","p","t","autosave","header","h2","label","labels","singular","originalDocID","status","_status","versionDate","baseURL","onChange","parentID","options","fieldPermissions","fields","createdAt"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CollectionPermission, Document, GlobalPermission, OptionObject } from 'payload';
2
2
  export type CompareOption = {
3
- label: string;
3
+ label: React.ReactNode | string;
4
4
  options?: CompareOption[];
5
5
  relationTo?: string;
6
6
  value: string;
@@ -9,9 +9,9 @@ export type DefaultVersionsViewProps = {
9
9
  doc: Document;
10
10
  docPermissions: CollectionPermission | GlobalPermission;
11
11
  initialComparisonDoc: Document;
12
+ latestDraftVersion?: string;
13
+ latestPublishedVersion?: string;
12
14
  localeOptions: OptionObject[];
13
- mostRecentDoc: Document;
14
- publishedDoc: Document;
15
15
  versionID?: string;
16
16
  };
17
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7F,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,QAAQ,CAAA;IACb,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,oBAAoB,EAAE,QAAQ,CAAA;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,aAAa,EAAE,QAAQ,CAAA;IACvB,YAAY,EAAE,QAAQ,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7F,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,QAAQ,CAAA;IACb,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,oBAAoB,EAAE,QAAQ,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Default/types.ts"],"sourcesContent":["import type { CollectionPermission, Document, GlobalPermission, OptionObject } from 'payload'\n\nexport type CompareOption = {\n label: string\n options?: CompareOption[]\n relationTo?: string\n value: string\n}\n\nexport type DefaultVersionsViewProps = {\n doc: Document\n docPermissions: CollectionPermission | GlobalPermission\n initialComparisonDoc: Document\n localeOptions: OptionObject[]\n mostRecentDoc: Document\n publishedDoc: Document\n versionID?: string\n}\n"],"names":[],"mappings":"AASA,WAQC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Default/types.ts"],"sourcesContent":["import type { CollectionPermission, Document, GlobalPermission, OptionObject } from 'payload'\n\nexport type CompareOption = {\n label: React.ReactNode | string\n options?: CompareOption[]\n relationTo?: string\n value: string\n}\n\nexport type DefaultVersionsViewProps = {\n doc: Document\n docPermissions: CollectionPermission | GlobalPermission\n initialComparisonDoc: Document\n latestDraftVersion?: string\n latestPublishedVersion?: string\n localeOptions: OptionObject[]\n versionID?: string\n}\n"],"names":[],"mappings":"AASA,WAQC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["import type { MappedField } from '@payloadcms/ui/utilities/buildComponentMap'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getUniqueListBy } from 'payload/shared'\nimport React from 'react'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport RenderFieldsToDiff from '../../index.js'\nimport './index.scss'\n\nconst baseClass = 'iterable-diff'\n\nconst Iterable: React.FC<Props> = ({\n comparison,\n diffComponents,\n field,\n i18n,\n locale,\n locales,\n permissions,\n version,\n}) => {\n const versionRowCount = Array.isArray(version) ? version.length : 0\n const comparisonRowCount = Array.isArray(comparison) ? comparison.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n return (\n <div className={baseClass}>\n {'label' in field.fieldComponentProps &&\n field.fieldComponentProps.label &&\n typeof field.fieldComponentProps.label !== 'function' && (\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.fieldComponentProps.label, i18n)}\n </Label>\n )}\n {maxRows > 0 && (\n <React.Fragment>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = version?.[i] || {}\n const comparisonRow = comparison?.[i] || {}\n\n let fieldMap: MappedField[] = []\n\n if (field.type === 'array' && 'fieldMap' in field.fieldComponentProps)\n fieldMap = field.fieldComponentProps.fieldMap\n\n if (field.type === 'blocks') {\n fieldMap = [\n // {\n // name: 'blockType',\n // label: i18n.t('fields:blockType'),\n // type: 'text',\n // },\n ]\n\n if (versionRow?.blockType === comparisonRow?.blockType) {\n const matchedBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === versionRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n fieldMap = [...fieldMap, ...matchedBlock.fieldMap]\n } else {\n const matchedVersionBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === versionRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n const matchedComparisonBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === comparisonRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n fieldMap = getUniqueListBy<MappedField>(\n [\n ...fieldMap,\n ...matchedVersionBlock.fieldMap,\n ...matchedComparisonBlock.fieldMap,\n ],\n 'name',\n )\n }\n }\n\n return (\n <div className={`${baseClass}__wrap`} key={i}>\n <RenderFieldsToDiff\n comparison={comparisonRow}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={permissions}\n i18n={i18n}\n locales={locales}\n version={versionRow}\n />\n </div>\n )\n })}\n </React.Fragment>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field.fieldComponentProps && field.fieldComponentProps.labels?.plural\n ? getTranslation(field.fieldComponentProps.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </div>\n )\n}\n\nexport default Iterable\n"],"names":["getTranslation","getUniqueListBy","React","Label","RenderFieldsToDiff","baseClass","Iterable","comparison","diffComponents","field","i18n","locale","locales","permissions","version","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","div","className","fieldComponentProps","label","span","Fragment","from","keys","map","row","i","versionRow","comparisonRow","fieldMap","type","blockType","matchedBlock","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock","fieldPermissions","t","labels","plural"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["import type { MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getUniqueListBy } from 'payload/shared'\nimport React from 'react'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport RenderFieldsToDiff from '../../index.js'\nimport './index.scss'\n\nconst baseClass = 'iterable-diff'\n\nconst Iterable: React.FC<Props> = ({\n comparison,\n diffComponents,\n field,\n i18n,\n locale,\n locales,\n permissions,\n version,\n}) => {\n const versionRowCount = Array.isArray(version) ? version.length : 0\n const comparisonRowCount = Array.isArray(comparison) ? comparison.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n return (\n <div className={baseClass}>\n {'label' in field.fieldComponentProps &&\n field.fieldComponentProps.label &&\n typeof field.fieldComponentProps.label !== 'function' && (\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.fieldComponentProps.label, i18n)}\n </Label>\n )}\n {maxRows > 0 && (\n <React.Fragment>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = version?.[i] || {}\n const comparisonRow = comparison?.[i] || {}\n\n let fieldMap: MappedField[] = []\n\n if (field.type === 'array' && 'fieldMap' in field.fieldComponentProps)\n fieldMap = field.fieldComponentProps.fieldMap\n\n if (field.type === 'blocks') {\n fieldMap = [\n // {\n // name: 'blockType',\n // label: i18n.t('fields:blockType'),\n // type: 'text',\n // },\n ]\n\n if (versionRow?.blockType === comparisonRow?.blockType) {\n const matchedBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === versionRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n fieldMap = [...fieldMap, ...matchedBlock.fieldMap]\n } else {\n const matchedVersionBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === versionRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n const matchedComparisonBlock = ('blocks' in field.fieldComponentProps &&\n field.fieldComponentProps.blocks?.find(\n (block) => block.slug === comparisonRow?.blockType,\n )) || {\n fieldMap: [],\n }\n\n fieldMap = getUniqueListBy<MappedField>(\n [\n ...fieldMap,\n ...matchedVersionBlock.fieldMap,\n ...matchedComparisonBlock.fieldMap,\n ],\n 'name',\n )\n }\n }\n\n return (\n <div className={`${baseClass}__wrap`} key={i}>\n <RenderFieldsToDiff\n comparison={comparisonRow}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={permissions}\n i18n={i18n}\n locales={locales}\n version={versionRow}\n />\n </div>\n )\n })}\n </React.Fragment>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field.fieldComponentProps && field.fieldComponentProps.labels?.plural\n ? getTranslation(field.fieldComponentProps.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </div>\n )\n}\n\nexport default Iterable\n"],"names":["getTranslation","getUniqueListBy","React","Label","RenderFieldsToDiff","baseClass","Iterable","comparison","diffComponents","field","i18n","locale","locales","permissions","version","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","div","className","fieldComponentProps","label","span","Fragment","from","keys","map","row","i","versionRow","comparisonRow","fieldMap","type","blockType","matchedBlock","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock","fieldPermissions","t","labels","plural"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { type MappedField, useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n let relation: string\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (Array.isArray(relationTo)) {\n if (typeof value === 'object') {\n relation = value.relationTo\n relatedDoc = value.value\n }\n } else {\n relation = relationTo\n relatedDoc = value\n }\n\n const relatedCollection = collections.find((c) => c.slug === relation)\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField))\n titleFieldIsLocalized = useAsTitleField.localized\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n let placeholder = ''\n\n const { collections } = useConfig()\n\n if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if ('hasMany' in field && field.hasMany) {\n if (Array.isArray(version))\n versionToRender = version\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n if (Array.isArray(comparison))\n comparisonToRender = comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version)\n comparisonToRender = generateLabelFromValue(collections, field, locale, comparison)\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder}\n oldValue={\n typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder\n }\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","relation","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","Array","isArray","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","map","val","join","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n let relation: string\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (Array.isArray(relationTo)) {\n if (typeof value === 'object') {\n relation = value.relationTo\n relatedDoc = value.value\n }\n } else {\n relation = relationTo\n relatedDoc = value\n }\n\n const relatedCollection = collections.find((c) => c.slug === relation)\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField))\n titleFieldIsLocalized = useAsTitleField.localized\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n let placeholder = ''\n\n const { collections } = useConfig()\n\n if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if ('hasMany' in field && field.hasMany) {\n if (Array.isArray(version))\n versionToRender = version\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n if (Array.isArray(comparison))\n comparisonToRender = comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version)\n comparisonToRender = generateLabelFromValue(collections, field, locale, comparison)\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder}\n oldValue={\n typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder\n }\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","relation","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","Array","isArray","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","map","val","join","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import type { SelectFieldProps } from '@payloadcms/ui';
2
- import type { MappedField } from '@payloadcms/ui/utilities/buildComponentMap';
1
+ import type { MappedField, SelectFieldProps } from 'payload';
3
2
  import React from 'react';
4
3
  import type { Props } from '../types.js';
5
4
  import './index.scss';
6
- declare const Select: React.FC<Omit<Props, 'field'> & {
5
+ declare const Select: React.FC<{
7
6
  field: MappedField & SelectFieldProps;
8
- }>;
7
+ } & Omit<Props, 'field'>>;
9
8
  export default Select;
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAI7E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAKxC,OAAO,cAAc,CAAA;AAmCrB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CACpB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG;IACrB,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAAA;CACtC,CAiCF,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAA6B,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGvF,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAKxC,OAAO,cAAc,CAAA;AAmCrB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CACpB;IACE,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAAA;CACtC,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAiCzB,CAAA;AAED,eAAe,MAAM,CAAA"}