@payloadcms/next 3.0.0-beta.127 → 3.0.0-beta.129

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 (285) hide show
  1. package/dist/cjs/withPayload.cjs +10 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +13 -15
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/index.js +9 -14
  9. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +13 -28
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/index.d.ts +0 -1
  14. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/index.js +9 -12
  16. package/dist/elements/DocumentHeader/index.js.map +1 -1
  17. package/dist/elements/Logo/index.d.ts.map +1 -1
  18. package/dist/elements/Logo/index.js +5 -6
  19. package/dist/elements/Logo/index.js.map +1 -1
  20. package/dist/elements/Nav/index.client.d.ts +4 -1
  21. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  22. package/dist/elements/Nav/index.client.js +40 -95
  23. package/dist/elements/Nav/index.client.js.map +1 -1
  24. package/dist/elements/Nav/index.d.ts.map +1 -1
  25. package/dist/elements/Nav/index.js +60 -23
  26. package/dist/elements/Nav/index.js.map +1 -1
  27. package/dist/exports/layouts.d.ts +1 -0
  28. package/dist/exports/layouts.d.ts.map +1 -1
  29. package/dist/exports/layouts.js +1 -0
  30. package/dist/exports/layouts.js.map +1 -1
  31. package/dist/exports/utilities.d.ts.map +1 -1
  32. package/dist/exports/utilities.js +1 -0
  33. package/dist/exports/utilities.js.map +1 -1
  34. package/dist/exports/views.d.ts +0 -2
  35. package/dist/exports/views.d.ts.map +1 -1
  36. package/dist/exports/views.js +0 -2
  37. package/dist/exports/views.js.map +1 -1
  38. package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
  39. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  40. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  41. package/dist/fetchAPI-multipart/processMultipart.js +9 -11
  42. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  43. package/dist/layouts/Root/NestProviders.d.ts +11 -0
  44. package/dist/layouts/Root/NestProviders.d.ts.map +1 -0
  45. package/dist/layouts/Root/NestProviders.js +21 -0
  46. package/dist/layouts/Root/NestProviders.js.map +1 -0
  47. package/dist/layouts/Root/index.d.ts +3 -2
  48. package/dist/layouts/Root/index.d.ts.map +1 -1
  49. package/dist/layouts/Root/index.js +14 -18
  50. package/dist/layouts/Root/index.js.map +1 -1
  51. package/dist/prod/styles.css +1 -1
  52. package/dist/routes/rest/index.d.ts.map +1 -1
  53. package/dist/routes/rest/index.js +0 -10
  54. package/dist/routes/rest/index.js.map +1 -1
  55. package/dist/routes/rest/og/image.d.ts +4 -2
  56. package/dist/routes/rest/og/image.d.ts.map +1 -1
  57. package/dist/routes/rest/og/image.js +7 -3
  58. package/dist/routes/rest/og/image.js.map +1 -1
  59. package/dist/routes/rest/og/index.d.ts.map +1 -1
  60. package/dist/routes/rest/og/index.js +5 -8
  61. package/dist/routes/rest/og/index.js.map +1 -1
  62. package/dist/routes/rest/routeError.d.ts.map +1 -1
  63. package/dist/routes/rest/routeError.js +1 -47
  64. package/dist/routes/rest/routeError.js.map +1 -1
  65. package/dist/templates/Default/index.d.ts +2 -1
  66. package/dist/templates/Default/index.d.ts.map +1 -1
  67. package/dist/templates/Default/index.js +97 -41
  68. package/dist/templates/Default/index.js.map +1 -1
  69. package/dist/utilities/getClientConfig.d.ts +7 -0
  70. package/dist/utilities/getClientConfig.d.ts.map +1 -0
  71. package/dist/utilities/getClientConfig.js +14 -0
  72. package/dist/utilities/getClientConfig.js.map +1 -0
  73. package/dist/utilities/handleServerFunctions.d.ts +3 -0
  74. package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
  75. package/dist/utilities/handleServerFunctions.js +35 -0
  76. package/dist/utilities/handleServerFunctions.js.map +1 -0
  77. package/dist/utilities/initPage/handleAdminPage.d.ts +2 -1
  78. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  79. package/dist/utilities/initPage/handleAdminPage.js +9 -1
  80. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  81. package/dist/utilities/initPage/index.d.ts.map +1 -1
  82. package/dist/utilities/initPage/index.js +2 -1
  83. package/dist/utilities/initPage/index.js.map +1 -1
  84. package/dist/utilities/initReq.d.ts +1 -1
  85. package/dist/utilities/initReq.d.ts.map +1 -1
  86. package/dist/utilities/initReq.js +3 -2
  87. package/dist/utilities/initReq.js.map +1 -1
  88. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
  89. package/dist/views/API/LocaleSelector/index.js +0 -1
  90. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  91. package/dist/views/API/index.client.d.ts.map +1 -1
  92. package/dist/views/API/index.client.js +10 -13
  93. package/dist/views/API/index.client.js.map +1 -1
  94. package/dist/views/Account/Settings/index.js +0 -1
  95. package/dist/views/Account/Settings/index.js.map +1 -1
  96. package/dist/views/Account/index.d.ts.map +1 -1
  97. package/dist/views/Account/index.js +81 -24
  98. package/dist/views/Account/index.js.map +1 -1
  99. package/dist/views/CreateFirstUser/index.client.d.ts +3 -1
  100. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  101. package/dist/views/CreateFirstUser/index.client.js +83 -109
  102. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  103. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  104. package/dist/views/CreateFirstUser/index.js +36 -4
  105. package/dist/views/CreateFirstUser/index.js.map +1 -1
  106. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  107. package/dist/views/Dashboard/Default/index.js +46 -44
  108. package/dist/views/Dashboard/Default/index.js.map +1 -1
  109. package/dist/views/Dashboard/index.d.ts.map +1 -1
  110. package/dist/views/Dashboard/index.js +22 -21
  111. package/dist/views/Dashboard/index.js.map +1 -1
  112. package/dist/views/Document/getDocPreferences.d.ts +11 -0
  113. package/dist/views/Document/getDocPreferences.d.ts.map +1 -0
  114. package/dist/views/Document/getDocPreferences.js +44 -0
  115. package/dist/views/Document/getDocPreferences.js.map +1 -0
  116. package/dist/views/Document/getDocumentData.d.ts +10 -11
  117. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  118. package/dist/views/Document/getDocumentData.js +35 -47
  119. package/dist/views/Document/getDocumentData.js.map +1 -1
  120. package/dist/views/Document/getIsLocked.d.ts +16 -0
  121. package/dist/views/Document/getIsLocked.d.ts.map +1 -0
  122. package/dist/views/Document/getIsLocked.js +55 -0
  123. package/dist/views/Document/getIsLocked.js.map +1 -0
  124. package/dist/views/Document/getVersions.d.ts +19 -0
  125. package/dist/views/Document/getVersions.d.ts.map +1 -0
  126. package/dist/views/Document/getVersions.js +181 -0
  127. package/dist/views/Document/getVersions.js.map +1 -0
  128. package/dist/views/Document/getViewsFromConfig.d.ts +1 -1
  129. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  130. package/dist/views/Document/getViewsFromConfig.js +18 -19
  131. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  132. package/dist/views/Document/handleServerFunction.d.ts +24 -0
  133. package/dist/views/Document/handleServerFunction.d.ts.map +1 -0
  134. package/dist/views/Document/handleServerFunction.js +156 -0
  135. package/dist/views/Document/handleServerFunction.js.map +1 -0
  136. package/dist/views/Document/index.d.ts +5 -1
  137. package/dist/views/Document/index.d.ts.map +1 -1
  138. package/dist/views/Document/index.js +181 -72
  139. package/dist/views/Document/index.js.map +1 -1
  140. package/dist/views/Document/renderDocumentSlots.d.ts +12 -0
  141. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -0
  142. package/dist/views/Document/renderDocumentSlots.js +92 -0
  143. package/dist/views/Document/renderDocumentSlots.js.map +1 -0
  144. package/dist/views/Edit/index.d.ts +3 -2
  145. package/dist/views/Edit/index.d.ts.map +1 -1
  146. package/dist/views/Edit/index.js +7 -3
  147. package/dist/views/Edit/index.js.map +1 -1
  148. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  149. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -1
  150. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  151. package/dist/views/List/handleServerFunction.d.ts +26 -0
  152. package/dist/views/List/handleServerFunction.d.ts.map +1 -0
  153. package/dist/views/List/handleServerFunction.js +155 -0
  154. package/dist/views/List/handleServerFunction.js.map +1 -0
  155. package/dist/views/List/index.d.ts +12 -2
  156. package/dist/views/List/index.d.ts.map +1 -1
  157. package/dist/views/List/index.js +121 -81
  158. package/dist/views/List/index.js.map +1 -1
  159. package/dist/views/List/renderListViewSlots.d.ts +8 -0
  160. package/dist/views/List/renderListViewSlots.d.ts.map +1 -0
  161. package/dist/views/List/renderListViewSlots.js +44 -0
  162. package/dist/views/List/renderListViewSlots.js.map +1 -0
  163. package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
  164. package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
  165. package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
  166. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  167. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  168. package/dist/views/LivePreview/index.client.js +38 -35
  169. package/dist/views/LivePreview/index.client.js.map +1 -1
  170. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  171. package/dist/views/Login/LoginField/index.js +3 -1
  172. package/dist/views/Login/LoginField/index.js.map +1 -1
  173. package/dist/views/Login/index.d.ts.map +1 -1
  174. package/dist/views/Login/index.js +25 -19
  175. package/dist/views/Login/index.js.map +1 -1
  176. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
  177. package/dist/views/ResetPassword/ResetPasswordForm/index.js +24 -10
  178. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  179. package/dist/views/Root/getViewFromConfig.d.ts +3 -1
  180. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  181. package/dist/views/Root/getViewFromConfig.js +128 -7
  182. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  183. package/dist/views/Root/index.d.ts.map +1 -1
  184. package/dist/views/Root/index.js +22 -11
  185. package/dist/views/Root/index.js.map +1 -1
  186. package/dist/views/Version/Default/index.d.ts.map +1 -1
  187. package/dist/views/Version/Default/index.js +2 -4
  188. package/dist/views/Version/Default/index.js.map +1 -1
  189. package/dist/views/Versions/buildColumns.d.ts +3 -2
  190. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  191. package/dist/views/Versions/buildColumns.js +33 -61
  192. package/dist/views/Versions/buildColumns.js.map +1 -1
  193. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -0
  194. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  195. package/dist/views/Versions/cells/AutosaveCell/index.js +48 -37
  196. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  197. package/dist/views/Versions/cells/CreatedAt/index.d.ts +4 -0
  198. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  199. package/dist/views/Versions/cells/CreatedAt/index.js +43 -45
  200. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  201. package/dist/views/Versions/cells/ID/index.d.ts +3 -1
  202. package/dist/views/Versions/cells/ID/index.d.ts.map +1 -1
  203. package/dist/views/Versions/cells/ID/index.js +7 -19
  204. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  205. package/dist/views/Versions/index.client.d.ts.map +1 -1
  206. package/dist/views/Versions/index.client.js +53 -51
  207. package/dist/views/Versions/index.client.js.map +1 -1
  208. package/dist/views/Versions/index.d.ts.map +1 -1
  209. package/dist/views/Versions/index.js +3 -2
  210. package/dist/views/Versions/index.js.map +1 -1
  211. package/dist/withPayload.d.ts.map +1 -1
  212. package/dist/withPayload.js +10 -0
  213. package/dist/withPayload.js.map +1 -1
  214. package/license.md +22 -0
  215. package/package.json +16 -7
  216. package/dist/elements/DocumentLocked/index.d.ts +0 -12
  217. package/dist/elements/DocumentLocked/index.d.ts.map +0 -1
  218. package/dist/elements/DocumentLocked/index.js +0 -152
  219. package/dist/elements/DocumentLocked/index.js.map +0 -1
  220. package/dist/elements/DocumentLocked/index.scss +0 -40
  221. package/dist/elements/DocumentTakeOver/index.d.ts +0 -8
  222. package/dist/elements/DocumentTakeOver/index.d.ts.map +0 -1
  223. package/dist/elements/DocumentTakeOver/index.js +0 -98
  224. package/dist/elements/DocumentTakeOver/index.js.map +0 -1
  225. package/dist/elements/DocumentTakeOver/index.scss +0 -39
  226. package/dist/elements/EmailAndUsername/index.d.ts +0 -14
  227. package/dist/elements/EmailAndUsername/index.d.ts.map +0 -1
  228. package/dist/elements/EmailAndUsername/index.js +0 -121
  229. package/dist/elements/EmailAndUsername/index.js.map +0 -1
  230. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -4
  231. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +0 -1
  232. package/dist/elements/LeaveWithoutSaving/index.js +0 -162
  233. package/dist/elements/LeaveWithoutSaving/index.js.map +0 -1
  234. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  235. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts +0 -9
  236. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +0 -1
  237. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +0 -136
  238. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +0 -1
  239. package/dist/routes/rest/buildFormState.d.ts +0 -5
  240. package/dist/routes/rest/buildFormState.d.ts.map +0 -1
  241. package/dist/routes/rest/buildFormState.js +0 -46
  242. package/dist/routes/rest/buildFormState.js.map +0 -1
  243. package/dist/views/Edit/Default/Auth/APIKey.d.ts +0 -6
  244. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +0 -1
  245. package/dist/views/Edit/Default/Auth/APIKey.js +0 -125
  246. package/dist/views/Edit/Default/Auth/APIKey.js.map +0 -1
  247. package/dist/views/Edit/Default/Auth/index.d.ts +0 -5
  248. package/dist/views/Edit/Default/Auth/index.d.ts.map +0 -1
  249. package/dist/views/Edit/Default/Auth/index.js +0 -318
  250. package/dist/views/Edit/Default/Auth/index.js.map +0 -1
  251. package/dist/views/Edit/Default/Auth/index.scss +0 -78
  252. package/dist/views/Edit/Default/Auth/types.d.ts +0 -17
  253. package/dist/views/Edit/Default/Auth/types.d.ts.map +0 -1
  254. package/dist/views/Edit/Default/Auth/types.js +0 -2
  255. package/dist/views/Edit/Default/Auth/types.js.map +0 -1
  256. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts +0 -11
  257. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +0 -1
  258. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +0 -130
  259. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +0 -1
  260. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts +0 -8
  261. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts.map +0 -1
  262. package/dist/views/Edit/Default/SetDocumentTitle/index.js +0 -81
  263. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +0 -1
  264. package/dist/views/Edit/Default/index.d.ts +0 -4
  265. package/dist/views/Edit/Default/index.d.ts.map +0 -1
  266. package/dist/views/Edit/Default/index.js +0 -349
  267. package/dist/views/Edit/Default/index.js.map +0 -1
  268. package/dist/views/Edit/Default/index.scss +0 -23
  269. package/dist/views/Edit/Default/types.d.ts +0 -6
  270. package/dist/views/Edit/Default/types.d.ts.map +0 -1
  271. package/dist/views/Edit/Default/types.js +0 -2
  272. package/dist/views/Edit/Default/types.js.map +0 -1
  273. package/dist/views/Edit/index.client.d.ts +0 -3
  274. package/dist/views/Edit/index.client.d.ts.map +0 -1
  275. package/dist/views/Edit/index.client.js +0 -54
  276. package/dist/views/Edit/index.client.js.map +0 -1
  277. package/dist/views/List/Default/index.d.ts +0 -4
  278. package/dist/views/List/Default/index.d.ts.map +0 -1
  279. package/dist/views/List/Default/index.js +0 -387
  280. package/dist/views/List/Default/index.js.map +0 -1
  281. package/dist/views/List/Default/index.scss +0 -179
  282. package/dist/views/List/Default/types.d.ts +0 -15
  283. package/dist/views/List/Default/types.d.ts.map +0 -1
  284. package/dist/views/List/Default/types.js +0 -2
  285. package/dist/views/List/Default/types.js.map +0 -1
@@ -1,130 +0,0 @@
1
- 'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { getTranslation } from '@payloadcms/translations';
5
- import { useConfig, useDocumentInfo, useEditDepth, useEntityVisibility, useStepNav, useTranslation } from '@payloadcms/ui';
6
- import { formatAdminURL } from '@payloadcms/ui/shared';
7
- import { useEffect } from 'react';
8
- export const SetDocumentStepNav = props => {
9
- const $ = _c(21);
10
- const {
11
- id,
12
- collectionSlug,
13
- globalSlug,
14
- pluralLabel,
15
- useAsTitle
16
- } = props;
17
- const view = props?.view || undefined;
18
- const {
19
- isEditing,
20
- isInitializing,
21
- title
22
- } = useDocumentInfo();
23
- const {
24
- isEntityVisible
25
- } = useEntityVisibility();
26
- let t0;
27
- if ($[0] !== collectionSlug || $[1] !== globalSlug || $[2] !== isEntityVisible) {
28
- t0 = isEntityVisible({
29
- collectionSlug,
30
- globalSlug
31
- });
32
- $[0] = collectionSlug;
33
- $[1] = globalSlug;
34
- $[2] = isEntityVisible;
35
- $[3] = t0;
36
- } else {
37
- t0 = $[3];
38
- }
39
- const isVisible = t0;
40
- const {
41
- setStepNav
42
- } = useStepNav();
43
- const {
44
- i18n,
45
- t
46
- } = useTranslation();
47
- const {
48
- config: t1
49
- } = useConfig();
50
- const {
51
- routes: t2
52
- } = t1;
53
- const {
54
- admin: adminRoute
55
- } = t2;
56
- const drawerDepth = useEditDepth();
57
- let t3;
58
- let t4;
59
- if ($[4] !== isInitializing || $[5] !== collectionSlug || $[6] !== pluralLabel || $[7] !== i18n || $[8] !== isVisible || $[9] !== adminRoute || $[10] !== isEditing || $[11] !== useAsTitle || $[12] !== title || $[13] !== id || $[14] !== t || $[15] !== globalSlug || $[16] !== view || $[17] !== drawerDepth || $[18] !== setStepNav) {
60
- t3 = () => {
61
- const nav = [];
62
- if (!isInitializing) {
63
- if (collectionSlug) {
64
- nav.push({
65
- label: getTranslation(pluralLabel, i18n),
66
- url: isVisible ? formatAdminURL({
67
- adminRoute,
68
- path: `/collections/${collectionSlug}`
69
- }) : undefined
70
- });
71
- if (isEditing) {
72
- nav.push({
73
- label: useAsTitle && useAsTitle !== "id" && title || `${id}`,
74
- url: isVisible ? formatAdminURL({
75
- adminRoute,
76
- path: `/collections/${collectionSlug}/${id}`
77
- }) : undefined
78
- });
79
- } else {
80
- nav.push({
81
- label: t("general:createNew")
82
- });
83
- }
84
- } else {
85
- if (globalSlug) {
86
- nav.push({
87
- label: title,
88
- url: isVisible ? formatAdminURL({
89
- adminRoute,
90
- path: `/globals/${globalSlug}`
91
- }) : undefined
92
- });
93
- }
94
- }
95
- if (view) {
96
- nav.push({
97
- label: view
98
- });
99
- }
100
- if (drawerDepth <= 1) {
101
- setStepNav(nav);
102
- }
103
- }
104
- };
105
- t4 = [setStepNav, isInitializing, isEditing, pluralLabel, id, useAsTitle, adminRoute, t, i18n, title, collectionSlug, globalSlug, view, drawerDepth, isVisible];
106
- $[4] = isInitializing;
107
- $[5] = collectionSlug;
108
- $[6] = pluralLabel;
109
- $[7] = i18n;
110
- $[8] = isVisible;
111
- $[9] = adminRoute;
112
- $[10] = isEditing;
113
- $[11] = useAsTitle;
114
- $[12] = title;
115
- $[13] = id;
116
- $[14] = t;
117
- $[15] = globalSlug;
118
- $[16] = view;
119
- $[17] = drawerDepth;
120
- $[18] = setStepNav;
121
- $[19] = t3;
122
- $[20] = t4;
123
- } else {
124
- t3 = $[19];
125
- t4 = $[20];
126
- }
127
- useEffect(t3, t4);
128
- return null;
129
- };
130
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","useDocumentInfo","useEditDepth","useEntityVisibility","useStepNav","useTranslation","formatAdminURL","useEffect","SetDocumentStepNav","props","$","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","isInitializing","title","isEntityVisible","t0","isVisible","setStepNav","i18n","t","config","t1","routes","t2","admin","adminRoute","drawerDepth","t3","t4","nav","push","label","url","path"],"sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type StepNavItem,\n useConfig,\n useDocumentInfo,\n useEditDepth,\n useEntityVisibility,\n useStepNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { useEffect } from 'react'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, isInitializing, title } = useDocumentInfo()\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const drawerDepth = useEditDepth()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (!isInitializing) {\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}`,\n })\n : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible\n ? formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n : undefined,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n if (drawerDepth <= 1) {\n setStepNav(nav)\n }\n }\n }, [\n setStepNav,\n isInitializing,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n adminRoute,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n drawerDepth,\n isVisible,\n ])\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +0,0 @@
1
- import type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload';
2
- export declare const SetDocumentTitle: React.FC<{
3
- collectionConfig?: ClientCollectionConfig;
4
- config?: ClientConfig;
5
- fallback: string;
6
- globalConfig?: ClientGlobalConfig;
7
- }>;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/SetDocumentTitle/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAMvF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC,CAuCA,CAAA"}
@@ -1,81 +0,0 @@
1
- 'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { useDocumentInfo, useFormFields, useTranslation } from '@payloadcms/ui';
5
- import { formatDocTitle } from '@payloadcms/ui/shared';
6
- import { useEffect, useRef } from 'react';
7
- export const SetDocumentTitle = props => {
8
- const $ = _c(13);
9
- const {
10
- collectionConfig,
11
- config,
12
- fallback,
13
- globalConfig
14
- } = props;
15
- const useAsTitle = collectionConfig?.admin?.useAsTitle;
16
- let t0;
17
- if ($[0] !== useAsTitle) {
18
- t0 = t1 => {
19
- const [fields] = t1;
20
- return useAsTitle && fields && fields?.[useAsTitle] || null;
21
- };
22
- $[0] = useAsTitle;
23
- $[1] = t0;
24
- } else {
25
- t0 = $[1];
26
- }
27
- const field = useFormFields(t0);
28
- const hasInitialized = useRef(false);
29
- const {
30
- i18n
31
- } = useTranslation();
32
- const {
33
- setDocumentTitle
34
- } = useDocumentInfo();
35
- const dateFormatFromConfig = config?.admin?.dateFormat;
36
- let t1;
37
- if ($[2] !== field || $[3] !== fallback || $[4] !== collectionConfig || $[5] !== dateFormatFromConfig || $[6] !== globalConfig || $[7] !== i18n) {
38
- t1 = formatDocTitle({
39
- collectionConfig,
40
- data: {
41
- id: ""
42
- },
43
- dateFormat: dateFormatFromConfig,
44
- fallback: typeof field === "string" ? field : typeof field === "number" ? String(field) : field?.value || fallback,
45
- globalConfig,
46
- i18n
47
- });
48
- $[2] = field;
49
- $[3] = fallback;
50
- $[4] = collectionConfig;
51
- $[5] = dateFormatFromConfig;
52
- $[6] = globalConfig;
53
- $[7] = i18n;
54
- $[8] = t1;
55
- } else {
56
- t1 = $[8];
57
- }
58
- const title = t1;
59
- let t2;
60
- let t3;
61
- if ($[9] !== setDocumentTitle || $[10] !== title) {
62
- t2 = () => {
63
- if (!hasInitialized.current) {
64
- hasInitialized.current = true;
65
- return;
66
- }
67
- setDocumentTitle(title);
68
- };
69
- t3 = [setDocumentTitle, title];
70
- $[9] = setDocumentTitle;
71
- $[10] = title;
72
- $[11] = t2;
73
- $[12] = t3;
74
- } else {
75
- t2 = $[11];
76
- t3 = $[12];
77
- }
78
- useEffect(t2, t3);
79
- return null;
80
- };
81
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useDocumentInfo","useFormFields","useTranslation","formatDocTitle","useEffect","useRef","SetDocumentTitle","props","$","collectionConfig","config","fallback","globalConfig","useAsTitle","admin","t0","t1","fields","field","hasInitialized","i18n","setDocumentTitle","dateFormatFromConfig","dateFormat","data","id","String","value","title","t2","t3","current"],"sources":["../../../../../src/views/Edit/Default/SetDocumentTitle/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport { useDocumentInfo, useFormFields, useTranslation } from '@payloadcms/ui'\nimport { formatDocTitle } from '@payloadcms/ui/shared'\nimport { useEffect, useRef } from 'react'\n\nexport const SetDocumentTitle: React.FC<{\n collectionConfig?: ClientCollectionConfig\n config?: ClientConfig\n fallback: string\n globalConfig?: ClientGlobalConfig\n}> = (props) => {\n const { collectionConfig, config, fallback, globalConfig } = props\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n const field = useFormFields(([fields]) => (useAsTitle && fields && fields?.[useAsTitle]) || null)\n\n const hasInitialized = useRef(false)\n\n const { i18n } = useTranslation()\n\n const { setDocumentTitle } = useDocumentInfo()\n\n const dateFormatFromConfig = config?.admin?.dateFormat\n\n const title = formatDocTitle({\n collectionConfig,\n data: { id: '' },\n dateFormat: dateFormatFromConfig,\n fallback:\n typeof field === 'string'\n ? field\n : typeof field === 'number'\n ? String(field)\n : (field?.value as string) || fallback,\n globalConfig,\n i18n,\n })\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n setDocumentTitle(title)\n }, [setDocumentTitle, title])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,eAAe,EAAEC,aAAa,EAAEC,cAAc,QAAQ;AAC/D,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAElC,OAAO,MAAMC,gBAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,gBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC;EAAA,IAA6DL,KAAA;EAE7D,MAAAM,UAAA,GAAmBJ,gBAAA,EAAAK,KAAA,EAAAD,UAAA;EAAyB,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAK,UAAA;IAEhBE,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKH,UAAC,IAAcI,MAAA,IAAUA,MAAA,GAASJ,UAAA,CAAW,QAAK;IAAA;IAAAL,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA5F,MAAAU,KAAA,GAAcjB,aAAA,CAAcc,EAAgE;EAE5F,MAAAI,cAAA,GAAuBd,MAAA,MAAO;EAE9B;IAAAe;EAAA,IAAiBlB,cAAA;EAEjB;IAAAmB;EAAA,IAA6BrB,eAAA;EAE7B,MAAAsB,oBAAA,GAA6BZ,MAAA,EAAAI,KAAA,EAAAS,UAAA;EAAe,IAAAP,EAAA;EAAA,IAAAR,CAAA,QAAAU,KAAA,IAAAV,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAc,oBAAA,IAAAd,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAY,IAAA;IAE9BJ,EAAA,GAAAb,cAAA;MAAAM,gBAAA;MAAAe,IAAA;QAAAC,EAAA,EAEA;MAAA;MAAAF,UAAA,EACAD,oBAAA;MAAAX,QAAA,EAEV,OAAOO,KAAA,KAAU,WACbA,KAAA,GACA,OAAOA,KAAA,KAAU,WACfQ,MAAA,CAAOR,KAAA,IACPA,KAAC,EAAAS,KAAA,IAA2BhB,QAAA;MAAAC,YAAA;MAAAQ;IAAA,CAGtC;IAAAZ,CAAA,MAAAU,KAAA;IAAAV,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAC,gBAAA;IAAAD,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAZA,MAAAoB,KAAA,GAAcZ,EAYd;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAa,gBAAA,IAAAb,CAAA,SAAAoB,KAAA;IAEUC,EAAA,GAAAA,CAAA;MAAA,KACHV,cAAA,CAAAY,OAAA;QACHZ,cAAA,CAAAY,OAAA;QAAA;MAAA;MAIFV,gBAAA,CAAiBO,KAAA;IAAA;IAChBE,EAAA,IAACT,gBAAA,EAAkBO,KAAA;IAAMpB,CAAA,MAAAa,gBAAA;IAAAb,CAAA,OAAAoB,KAAA;IAAApB,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAsB,EAAA;EAAA;IAAAD,EAAA,GAAArB,CAAA;IAAAsB,EAAA,GAAAtB,CAAA;EAAA;EAP5BJ,SAAA,CAAUyB,EAOV,EAAGC,EAAyB;EAAA;AAAA,CAG9B","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import './index.scss';
3
- export declare const DefaultEditView: React.FC;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Default/index.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAA6D,MAAM,OAAO,CAAA;AAMjF,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA4dnC,CAAA"}
@@ -1,349 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { DocumentControls, DocumentFields, Form, OperationProvider, RenderComponent, Upload, useAuth, useConfig, useDocumentEvents, useDocumentInfo, useEditDepth, useUploadEdits } from '@payloadcms/ui';
5
- import { formatAdminURL, getFormState, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
6
- import { useRouter, useSearchParams } from 'next/navigation.js';
7
- import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
8
- import { DocumentLocked } from '../../../elements/DocumentLocked/index.js';
9
- import { DocumentTakeOver } from '../../../elements/DocumentTakeOver/index.js';
10
- import { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js';
11
- import { Auth } from './Auth/index.js';
12
- import { SetDocumentStepNav } from './SetDocumentStepNav/index.js';
13
- import { SetDocumentTitle } from './SetDocumentTitle/index.js';
14
- const baseClass = 'collection-edit';
15
- // This component receives props only on _pages_
16
- // When rendered within a drawer, props are empty
17
- // This is solely to support custom edit views which get server-rendered
18
- export const DefaultEditView = () => {
19
- const {
20
- id,
21
- action,
22
- AfterDocument,
23
- AfterFields,
24
- apiURL,
25
- BeforeDocument,
26
- BeforeFields,
27
- collectionSlug,
28
- currentEditor,
29
- disableActions,
30
- disableCreate,
31
- disableLeaveWithoutSaving,
32
- docPermissions,
33
- documentIsLocked,
34
- getDocPreferences,
35
- getVersions,
36
- globalSlug,
37
- hasPublishPermission,
38
- hasSavePermission,
39
- initialData: data,
40
- initialState,
41
- isEditing,
42
- isInitializing,
43
- lastUpdateTime,
44
- onDelete,
45
- onDrawerCreate,
46
- onDuplicate,
47
- onSave: onSaveFromContext,
48
- redirectAfterDelete,
49
- redirectAfterDuplicate,
50
- setCurrentEditor,
51
- setDocumentIsLocked,
52
- unlockDocument,
53
- updateDocumentEditor
54
- } = useDocumentInfo();
55
- const {
56
- refreshCookieAsync,
57
- user
58
- } = useAuth();
59
- const {
60
- config,
61
- config: {
62
- admin: {
63
- user: userSlug
64
- },
65
- routes: {
66
- admin: adminRoute,
67
- api: apiRoute
68
- },
69
- serverURL
70
- },
71
- getEntityConfig
72
- } = useConfig();
73
- const router = useRouter();
74
- const depth = useEditDepth();
75
- const params = useSearchParams();
76
- const {
77
- reportUpdate
78
- } = useDocumentEvents();
79
- const {
80
- resetUploadEdits
81
- } = useUploadEdits();
82
- const locale = params.get('locale');
83
- const collectionConfig = getEntityConfig({
84
- collectionSlug
85
- });
86
- const globalConfig = getEntityConfig({
87
- globalSlug
88
- });
89
- const entitySlug = collectionConfig?.slug || globalConfig?.slug;
90
- const operation = collectionSlug && !id ? 'create' : 'update';
91
- const auth = collectionConfig ? collectionConfig.auth : undefined;
92
- const upload = collectionConfig ? collectionConfig.upload : undefined;
93
- const docConfig = collectionConfig || globalConfig;
94
- const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true;
95
- const isLockingEnabled = lockDocumentsProp !== false;
96
- const lockDurationDefault = 300 // Default 5 minutes in seconds
97
- ;
98
- const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
99
- const lockDurationInMilliseconds = lockDuration * 1000;
100
- let preventLeaveWithoutSaving = true;
101
- if (collectionConfig) {
102
- preventLeaveWithoutSaving = !(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave);
103
- } else if (globalConfig) {
104
- preventLeaveWithoutSaving = !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave);
105
- } else if (typeof disableLeaveWithoutSaving !== 'undefined') {
106
- preventLeaveWithoutSaving = !disableLeaveWithoutSaving;
107
- }
108
- const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
109
- const [showTakeOverModal, setShowTakeOverModal] = useState(false);
110
- const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
111
- const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
112
- const isLockExpired = Date.now() > lockExpiryTime;
113
- const documentLockStateRef = useRef({
114
- hasShownLockedModal: false,
115
- isLocked: false,
116
- user: null
117
- });
118
- const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`];
119
- if (globalSlug) {
120
- classes.push(`global-edit--${globalSlug}`);
121
- }
122
- if (collectionSlug) {
123
- classes.push(`collection-edit--${collectionSlug}`);
124
- }
125
- const [schemaPath, setSchemaPath] = useState(() => {
126
- if (operation === 'create' && auth && !auth.disableLocalStrategy) {
127
- return `_${entitySlug}.auth`;
128
- }
129
- return entitySlug;
130
- });
131
- const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {
132
- if (operation === 'create' && auth && !auth.disableLocalStrategy) {
133
- return true;
134
- }
135
- return false;
136
- });
137
- const onSave = useCallback(json => {
138
- reportUpdate({
139
- id,
140
- entitySlug,
141
- updatedAt: json?.result?.updatedAt || new Date().toISOString()
142
- });
143
- // If we're editing the doc of the logged-in user,
144
- // Refresh the cookie to get new permissions
145
- if (user && collectionSlug === userSlug && id === user.id) {
146
- void refreshCookieAsync();
147
- }
148
- void getVersions();
149
- if (typeof onSaveFromContext === 'function') {
150
- void onSaveFromContext({
151
- ...json,
152
- operation: id ? 'update' : 'create'
153
- });
154
- }
155
- // Unlock the document after save
156
- if ((id || globalSlug) && isLockingEnabled) {
157
- setDocumentIsLocked(false);
158
- }
159
- if (!isEditing && depth < 2) {
160
- // Redirect to the same locale if it's been set
161
- const redirectRoute = formatAdminURL({
162
- adminRoute,
163
- path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`
164
- });
165
- router.push(redirectRoute);
166
- } else {
167
- resetUploadEdits();
168
- }
169
- }, [onSaveFromContext, userSlug, reportUpdate, id, entitySlug, user, depth, collectionSlug, getVersions, isEditing, refreshCookieAsync, adminRoute, router, locale, resetUploadEdits, globalSlug, isLockingEnabled, setDocumentIsLocked]);
170
- const onChange = useCallback(async ({
171
- formState: prevFormState
172
- }) => {
173
- const currentTime = Date.now();
174
- const timeSinceLastUpdate = currentTime - editSessionStartTime;
175
- const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
176
- ;
177
- if (updateLastEdited) {
178
- setEditSessionStartTime(currentTime);
179
- }
180
- const docPreferences = await getDocPreferences();
181
- const {
182
- lockedState,
183
- state
184
- } = await getFormState({
185
- apiRoute,
186
- body: {
187
- id,
188
- collectionSlug,
189
- docPreferences,
190
- formState: prevFormState,
191
- globalSlug,
192
- operation,
193
- returnLockStatus: isLockingEnabled ? true : false,
194
- schemaPath,
195
- updateLastEdited
196
- },
197
- serverURL
198
- });
199
- setDocumentIsLocked(true);
200
- if (isLockingEnabled) {
201
- const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
202
- if (lockedState) {
203
- if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {
204
- if (previousOwnerId === user.id && lockedState.user.id !== user.id) {
205
- setShowTakeOverModal(true);
206
- documentLockStateRef.current.hasShownLockedModal = true;
207
- }
208
- documentLockStateRef.current = documentLockStateRef.current = {
209
- hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,
210
- isLocked: true,
211
- user: lockedState.user
212
- };
213
- setCurrentEditor(lockedState.user);
214
- }
215
- }
216
- }
217
- return state;
218
- }, [apiRoute, collectionSlug, editSessionStartTime, schemaPath, getDocPreferences, globalSlug, id, operation, serverURL, user, documentLockStateRef, setCurrentEditor, isLockingEnabled, setDocumentIsLocked]);
219
- // Clean up when the component unmounts or when the document is unlocked
220
- useEffect(() => {
221
- return () => {
222
- if (!isLockingEnabled) {
223
- return;
224
- }
225
- const currentPath = window.location.pathname;
226
- const documentId = id || globalSlug;
227
- // Routes where we do NOT want to unlock the document
228
- const stayWithinDocumentPaths = ['preview', 'api', 'versions'];
229
- const isStayingWithinDocument = stayWithinDocumentPaths.some(path => currentPath.includes(path));
230
- // Unlock the document only if we're actually navigating away from the document
231
- if (documentId && documentIsLocked && !isStayingWithinDocument) {
232
- // Check if this user is still the current editor
233
- if (typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id === user?.id : documentLockStateRef.current?.user === user?.id) {
234
- void unlockDocument(id, collectionSlug ?? globalSlug);
235
- setDocumentIsLocked(false);
236
- setCurrentEditor(null);
237
- }
238
- }
239
- setShowTakeOverModal(false);
240
- };
241
- }, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
242
- const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal && !documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
243
- return /*#__PURE__*/_jsx("main", {
244
- className: classes.filter(Boolean).join(' '),
245
- children: /*#__PURE__*/_jsx(OperationProvider, {
246
- operation: operation,
247
- children: /*#__PURE__*/_jsxs(Form, {
248
- action: action,
249
- className: `${baseClass}__form`,
250
- disabled: isReadOnlyForIncomingUser || isInitializing || !hasSavePermission,
251
- disableValidationOnSubmit: !validateBeforeSubmit,
252
- initialState: !isInitializing && initialState,
253
- isInitializing: isInitializing,
254
- method: id ? 'PATCH' : 'POST',
255
- onChange: [onChange],
256
- onSuccess: onSave,
257
- children: [BeforeDocument, isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(DocumentLocked, {
258
- handleGoBack: () => handleGoBack({
259
- adminRoute,
260
- collectionSlug,
261
- router
262
- }),
263
- isActive: shouldShowDocumentLockedModal,
264
- onReadOnly: () => {
265
- setIsReadOnlyForIncomingUser(true);
266
- setShowTakeOverModal(false);
267
- },
268
- onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled),
269
- updatedAt: lastUpdateTime,
270
- user: currentEditor
271
- }), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
272
- handleBackToDashboard: () => handleBackToDashboard({
273
- adminRoute,
274
- router
275
- }),
276
- isActive: showTakeOverModal,
277
- onReadOnly: () => {
278
- setIsReadOnlyForIncomingUser(true);
279
- setShowTakeOverModal(false);
280
- }
281
- }), !isReadOnlyForIncomingUser && preventLeaveWithoutSaving && /*#__PURE__*/_jsx(LeaveWithoutSaving, {}), /*#__PURE__*/_jsx(SetDocumentStepNav, {
282
- collectionSlug: collectionConfig?.slug,
283
- globalSlug: globalConfig?.slug,
284
- id: id,
285
- pluralLabel: collectionConfig?.labels?.plural,
286
- useAsTitle: collectionConfig?.admin?.useAsTitle
287
- }), /*#__PURE__*/_jsx(SetDocumentTitle, {
288
- collectionConfig: collectionConfig,
289
- config: config,
290
- fallback: depth <= 1 ? id?.toString() : undefined,
291
- globalConfig: globalConfig
292
- }), /*#__PURE__*/_jsx(DocumentControls, {
293
- apiURL: apiURL,
294
- data: data,
295
- disableActions: disableActions,
296
- disableCreate: disableCreate,
297
- hasPublishPermission: hasPublishPermission,
298
- hasSavePermission: hasSavePermission,
299
- id: id,
300
- isEditing: isEditing,
301
- onDelete: onDelete,
302
- onDrawerCreate: onDrawerCreate,
303
- onDuplicate: onDuplicate,
304
- onSave: onSave,
305
- onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser),
306
- permissions: docPermissions,
307
- readOnlyForIncomingUser: isReadOnlyForIncomingUser,
308
- redirectAfterDelete: redirectAfterDelete,
309
- redirectAfterDuplicate: redirectAfterDuplicate,
310
- slug: collectionConfig?.slug || globalConfig?.slug,
311
- user: currentEditor
312
- }), /*#__PURE__*/_jsx(DocumentFields, {
313
- AfterFields: AfterFields,
314
- BeforeFields: BeforeFields || /*#__PURE__*/_jsxs(Fragment, {
315
- children: [auth && /*#__PURE__*/_jsx(Auth, {
316
- className: `${baseClass}__auth`,
317
- collectionSlug: collectionConfig.slug,
318
- disableLocalStrategy: collectionConfig.auth?.disableLocalStrategy,
319
- email: data?.email,
320
- loginWithUsername: auth?.loginWithUsername,
321
- operation: operation,
322
- readOnly: !hasSavePermission,
323
- requirePassword: !id,
324
- setSchemaPath: setSchemaPath,
325
- setValidateBeforeSubmit: setValidateBeforeSubmit,
326
- // eslint-disable-next-line react-compiler/react-compiler
327
- useAPIKey: auth.useAPIKey,
328
- username: data?.username,
329
- verify: auth.verify
330
- }), upload && /*#__PURE__*/_jsx(React.Fragment, {
331
- children: collectionConfig?.admin?.components?.edit?.Upload ? /*#__PURE__*/_jsx(RenderComponent, {
332
- mappedComponent: collectionConfig.admin.components.edit.Upload
333
- }) : /*#__PURE__*/_jsx(Upload, {
334
- collectionSlug: collectionConfig.slug,
335
- initialState: initialState,
336
- uploadConfig: upload
337
- })
338
- })]
339
- }),
340
- docPermissions: docPermissions,
341
- fields: (collectionConfig || globalConfig)?.fields,
342
- readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
343
- schemaPath: schemaPath
344
- }), AfterDocument]
345
- })
346
- })
347
- });
348
- };
349
- //# sourceMappingURL=index.js.map