@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,21 +1,36 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { HydrateAuthProvider, ListInfoProvider, ListQueryProvider, TableColumnsProvider } from '@payloadcms/ui';
3
- import { formatAdminURL, getCreateMappedComponent, RenderComponent } from '@payloadcms/ui/shared';
4
- import { createClientCollectionConfig } from '@payloadcms/ui/utilities/createClientConfig';
2
+ import { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui';
3
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
+ import { renderFilters, renderTable } from '@payloadcms/ui/rsc';
5
+ import { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared';
5
6
  import { notFound } from 'next/navigation.js';
6
- import { deepCopyObjectSimple, mergeListSearchAndWhere } from 'payload';
7
7
  import { isNumber } from 'payload/shared';
8
8
  import React, { Fragment } from 'react';
9
- import { DefaultEditView } from '../Edit/Default/index.js';
10
- import { DefaultListView } from './Default/index.js';
9
+ import { renderListViewSlots } from './renderListViewSlots.js';
11
10
  export { generateListMetadata } from './meta.js';
12
- export const ListView = async ({
13
- initPageResult,
14
- params,
15
- searchParams
16
- }) => {
11
+ export const renderListView = async args => {
12
+ const {
13
+ clientConfig,
14
+ customCellProps,
15
+ disableBulkDelete,
16
+ disableBulkEdit,
17
+ drawerSlug,
18
+ enableRowSelections,
19
+ initPageResult,
20
+ params,
21
+ query: queryFromArgs,
22
+ searchParams
23
+ } = args;
17
24
  const {
18
25
  collectionConfig,
26
+ collectionConfig: {
27
+ slug: collectionSlug,
28
+ admin: {
29
+ useAsTitle
30
+ },
31
+ defaultSort,
32
+ fields
33
+ },
19
34
  locale: fullLocale,
20
35
  permissions,
21
36
  req,
@@ -26,15 +41,15 @@ export const ListView = async ({
26
41
  payload: {
27
42
  config
28
43
  },
29
- query,
44
+ query: queryFromReq,
30
45
  user
31
46
  },
32
47
  visibleEntities
33
48
  } = initPageResult;
34
- const collectionSlug = collectionConfig?.slug;
35
49
  if (!permissions?.collections?.[collectionSlug]?.read?.permission) {
36
- notFound();
50
+ throw new Error('not-found');
37
51
  }
52
+ const query = queryFromArgs || queryFromReq;
38
53
  let listPreferences;
39
54
  const preferenceKey = `${collectionSlug}-list`;
40
55
  try {
@@ -60,7 +75,7 @@ export const ListView = async ({
60
75
  }]
61
76
  }
62
77
  })?.then(res => res?.docs?.[0]?.value);
63
- } catch (error) {} // eslint-disable-line no-empty
78
+ } catch (_err) {} // eslint-disable-line no-empty
64
79
  const {
65
80
  routes: {
66
81
  admin: adminRoute
@@ -68,15 +83,13 @@ export const ListView = async ({
68
83
  } = config;
69
84
  if (collectionConfig) {
70
85
  if (!visibleEntities.collections.includes(collectionSlug)) {
71
- return notFound();
86
+ throw new Error('not-found');
72
87
  }
73
88
  const page = isNumber(query?.page) ? Number(query.page) : 0;
74
89
  const whereQuery = mergeListSearchAndWhere({
75
90
  collectionConfig,
76
- query: {
77
- search: typeof query?.search === 'string' ? query.search : undefined,
78
- where: query?.where || undefined
79
- }
91
+ search: typeof query?.search === 'string' ? query.search : undefined,
92
+ where: query?.where || undefined
80
93
  });
81
94
  const limit = isNumber(query?.limit) ? Number(query.limit) : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
82
95
  const sort = query?.sort && typeof query.sort === 'string' ? query.sort : listPreferences?.sort || (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined);
@@ -95,75 +108,102 @@ export const ListView = async ({
95
108
  user,
96
109
  where: whereQuery || {}
97
110
  });
98
- const createMappedComponent = getCreateMappedComponent({
99
- importMap: payload.importMap,
100
- serverProps: {
101
- collectionConfig,
102
- collectionSlug,
103
- data,
104
- hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,
105
- i18n,
106
- limit,
107
- listPreferences,
108
- listSearchableFields: collectionConfig.admin.listSearchableFields,
109
- locale: fullLocale,
110
- newDocumentURL: formatAdminURL({
111
- adminRoute,
112
- path: `/collections/${collectionSlug}/create`
113
- }),
114
- params,
115
- payload,
116
- permissions,
117
- searchParams,
118
- user
119
- }
111
+ const clientCollectionConfig = clientConfig.collections.find(c => c.slug === collectionSlug);
112
+ const {
113
+ columnState,
114
+ Table
115
+ } = renderTable({
116
+ collectionConfig: clientCollectionConfig,
117
+ columnPreferences: listPreferences?.columns,
118
+ customCellProps,
119
+ docs: data.docs,
120
+ drawerSlug,
121
+ enableRowSelections,
122
+ fields,
123
+ i18n: req.i18n,
124
+ payload,
125
+ useAsTitle
120
126
  });
121
- const ListComponent = createMappedComponent(collectionConfig?.admin?.components?.views?.list?.Component, undefined, DefaultListView, 'collectionConfig?.admin?.components?.views?.list?.Component');
122
- let clientCollectionConfig = deepCopyObjectSimple(collectionConfig);
123
- clientCollectionConfig = createClientCollectionConfig({
124
- clientCollection: clientCollectionConfig,
125
- collection: collectionConfig,
126
- createMappedComponent,
127
- DefaultEditView,
128
- DefaultListView,
129
- i18n,
130
- importMap: payload.importMap,
127
+ const renderedFilters = renderFilters(fields, req.payload.importMap);
128
+ const staticDescription = typeof collectionConfig.admin.description === 'function' ? collectionConfig.admin.description({
129
+ t: i18n.t
130
+ }) : collectionConfig.admin.description;
131
+ const listViewSlots = renderListViewSlots({
132
+ collectionConfig,
133
+ description: staticDescription,
131
134
  payload
132
135
  });
133
- return /*#__PURE__*/_jsxs(Fragment, {
134
- children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
135
- permissions: permissions
136
- }), /*#__PURE__*/_jsx(ListInfoProvider, {
137
- collectionConfig: clientCollectionConfig,
138
- collectionSlug: collectionSlug,
139
- hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,
140
- newDocumentURL: formatAdminURL({
141
- adminRoute,
142
- path: `/collections/${collectionSlug}/create`
143
- }),
144
- children: /*#__PURE__*/_jsx(ListQueryProvider, {
136
+ const clientProps = {
137
+ ...listViewSlots,
138
+ collectionSlug,
139
+ columnState,
140
+ disableBulkDelete,
141
+ disableBulkEdit,
142
+ enableRowSelections,
143
+ hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,
144
+ listPreferences,
145
+ newDocumentURL: formatAdminURL({
146
+ adminRoute,
147
+ path: `/collections/${collectionSlug}/create`
148
+ }),
149
+ renderedFilters,
150
+ Table
151
+ };
152
+ const isInDrawer = Boolean(drawerSlug);
153
+ return {
154
+ List: /*#__PURE__*/_jsxs(Fragment, {
155
+ children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
156
+ permissions: permissions
157
+ }), /*#__PURE__*/_jsx(ListQueryProvider, {
158
+ collectionSlug: collectionSlug,
145
159
  data: data,
146
- defaultLimit: limit || collectionConfig?.admin?.pagination?.defaultLimit,
160
+ defaultLimit: limit,
147
161
  defaultSort: sort,
148
- modifySearchParams: true,
162
+ modifySearchParams: !isInDrawer,
149
163
  preferenceKey: preferenceKey,
150
- children: /*#__PURE__*/_jsx(TableColumnsProvider, {
151
- collectionSlug: collectionSlug,
152
- enableRowSelections: true,
153
- listPreferences: listPreferences,
154
- preferenceKey: preferenceKey,
155
- children: /*#__PURE__*/_jsx(RenderComponent, {
156
- clientProps: {
157
- collectionSlug,
158
- listSearchableFields: collectionConfig?.admin?.listSearchableFields
159
- },
160
- mappedComponent: ListComponent
161
- })
164
+ children: /*#__PURE__*/_jsx(RenderServerComponent, {
165
+ clientProps: clientProps,
166
+ Component: collectionConfig?.admin?.components?.views?.list?.Component,
167
+ Fallback: DefaultListView,
168
+ importMap: payload.importMap,
169
+ serverProps: {
170
+ collectionConfig,
171
+ collectionSlug,
172
+ data,
173
+ i18n,
174
+ limit,
175
+ listPreferences,
176
+ listSearchableFields: collectionConfig.admin.listSearchableFields,
177
+ locale: fullLocale,
178
+ params,
179
+ payload,
180
+ permissions,
181
+ searchParams,
182
+ user
183
+ }
162
184
  })
163
- })
164
- })]
185
+ })]
186
+ })
187
+ };
188
+ }
189
+ throw new Error('not-found');
190
+ };
191
+ export const ListView = async args => {
192
+ try {
193
+ const {
194
+ List: RenderedList
195
+ } = await renderListView({
196
+ ...args,
197
+ enableRowSelections: true
165
198
  });
199
+ return RenderedList;
200
+ } catch (error) {
201
+ if (error.message === 'not-found') {
202
+ notFound();
203
+ } else {
204
+ console.error(error) // eslint-disable-line no-console
205
+ ;
206
+ }
166
207
  }
167
- return notFound();
168
208
  };
169
209
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HydrateAuthProvider","ListInfoProvider","ListQueryProvider","TableColumnsProvider","formatAdminURL","getCreateMappedComponent","RenderComponent","createClientCollectionConfig","notFound","deepCopyObjectSimple","mergeListSearchAndWhere","isNumber","React","Fragment","DefaultEditView","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","error","routes","admin","adminRoute","includes","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","defaultSort","data","draft","fallbackLocale","includeLockStatus","overrideAccess","createMappedComponent","importMap","serverProps","hasCreatePermission","create","listSearchableFields","newDocumentURL","path","ListComponent","components","views","list","Component","clientCollectionConfig","clientCollection","_jsxs","_jsx","modifySearchParams","enableRowSelections","clientProps","mappedComponent"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, ClientCollectionConfig, Where } from 'payload'\n\nimport {\n HydrateAuthProvider,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getCreateMappedComponent, RenderComponent } from '@payloadcms/ui/shared'\nimport { createClientCollectionConfig } from '@payloadcms/ui/utilities/createClientConfig'\nimport { notFound } from 'next/navigation.js'\nimport { deepCopyObjectSimple, mergeListSearchAndWhere } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { ListPreferences } from './Default/types.js'\n\nimport { DefaultEditView } from '../Edit/Default/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n notFound()\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string'\n ? collectionConfig.defaultSort\n : undefined)\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n collectionConfig,\n collectionSlug,\n data,\n hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const ListComponent = createMappedComponent(\n collectionConfig?.admin?.components?.views?.list?.Component,\n undefined,\n DefaultListView,\n 'collectionConfig?.admin?.components?.views?.list?.Component',\n )\n\n let clientCollectionConfig = deepCopyObjectSimple(\n collectionConfig,\n ) as unknown as ClientCollectionConfig\n clientCollectionConfig = createClientCollectionConfig({\n clientCollection: clientCollectionConfig,\n collection: collectionConfig,\n createMappedComponent,\n DefaultEditView,\n DefaultListView,\n i18n,\n importMap: payload.importMap,\n payload,\n })\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListInfoProvider\n collectionConfig={clientCollectionConfig}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderComponent\n clientProps={{\n collectionSlug,\n listSearchableFields: collectionConfig?.admin?.listSearchableFields,\n }}\n mappedComponent={ListComponent}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"mappings":";AAEA,SACEA,mBAAmB,EACnBC,gBAAgB,EAChBC,iBAAiB,EACjBC,oBAAoB,QACf;AACP,SAASC,cAAc,EAAEC,wBAAwB,EAAEC,eAAe,QAAQ;AAC1E,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,QAAQ,QAAQ;AACzB,SAASC,oBAAoB,EAAEC,uBAAuB,QAAQ;AAC9D,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,eAAe,QAAQ;AAChC,SAASC,eAAe,QAAQ;AAEhC,SAASC,oBAAoB,QAAQ;AAErC,OAAO,MAAMC,QAAA,GAAqC,MAAAA,CAAO;EACvDC,cAAc;EACdC,MAAM;EACNC;AAAY,CACb;EACC,MAAM;IACJC,gBAAgB;IAChBC,MAAA,EAAQC,UAAU;IAClBC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MACHC,IAAI;MACJJ,MAAM;MACNK,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBC,KAAK;MACLC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGb,cAAA;EAEJ,MAAMc,cAAA,GAAiBX,gBAAA,EAAkBY,IAAA;EAEzC,IAAI,CAACT,WAAA,EAAaU,WAAA,GAAcF,cAAA,CAAe,EAAEG,IAAA,EAAMC,UAAA,EAAY;IACjE5B,QAAA;EACF;EAEA,IAAI6B,eAAA;EACJ,MAAMC,aAAA,GAAgB,GAAGN,cAAA,OAAqB;EAE9C,IAAI;IACFK,eAAA,GAAmB,MAAMV,OAAA,CACtBY,IAAI,CAAC;MACJC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPjB,GAAA;MACAK,IAAA;MACAa,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,GAAA,EAAK;YACHC,MAAA,EAAQR;UACV;QACF,GACA;UACE,mBAAmB;YACjBQ,MAAA,EAAQhB,IAAA,CAAKU;UACf;QACF,GACA;UACE,cAAc;YACZM,MAAA,EAAQhB,IAAA,EAAMiB;UAChB;QACF;MAEJ;IACF,IACEC,IAAA,CAAMC,GAAA,IAAQA,GAAA,EAAKC,IAAA,GAAO,EAAE,EAAEC,KAAA;EACpC,EAAE,OAAOC,KAAA,EAAO,CAAC,EAAE;EAEnB,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAG3B,MAAA;EAEJ,IAAIP,gBAAA,EAAkB;IACpB,IAAI,CAACU,eAAA,CAAgBG,WAAW,CAACsB,QAAQ,CAACxB,cAAA,GAAiB;MACzD,OAAOxB,QAAA;IACT;IAEA,MAAMiD,IAAA,GAAO9C,QAAA,CAASkB,KAAA,EAAO4B,IAAA,IAAQC,MAAA,CAAO7B,KAAA,CAAM4B,IAAI,IAAI;IAC1D,MAAME,UAAA,GAAajD,uBAAA,CAAwB;MACzCW,gBAAA;MACAQ,KAAA,EAAO;QACL+B,MAAA,EAAQ,OAAO/B,KAAA,EAAO+B,MAAA,KAAW,WAAW/B,KAAA,CAAM+B,MAAM,GAAGC,SAAA;QAC3DlB,KAAA,EAAOd,KAAC,EAAOc,KAAA,IAAmBkB;MACpC;IACF;IACA,MAAMnB,KAAA,GAAQ/B,QAAA,CAASkB,KAAA,EAAOa,KAAA,IAC1BgB,MAAA,CAAO7B,KAAA,CAAMa,KAAK,IAClBL,eAAA,EAAiBK,KAAA,IAASrB,gBAAA,CAAiBiC,KAAK,CAACQ,UAAU,CAACC,YAAY;IAC5E,MAAMC,IAAA,GACJnC,KAAA,EAAOmC,IAAA,IAAQ,OAAOnC,KAAA,CAAMmC,IAAI,KAAK,WACjCnC,KAAA,CAAMmC,IAAI,GACV3B,eAAA,EAAiB2B,IAAA,KAChB,OAAO3C,gBAAA,CAAiB4C,WAAW,KAAK,WACrC5C,gBAAA,CAAiB4C,WAAW,GAC5BJ,SAAQ;IAElB,MAAMK,IAAA,GAAO,MAAMvC,OAAA,CAAQY,IAAI,CAAC;MAC9BC,UAAA,EAAYR,cAAA;MACZS,KAAA,EAAO;MACP0B,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,iBAAA,EAAmB;MACnB3B,KAAA;MACApB,MAAA;MACAgD,cAAA,EAAgB;MAChBb,IAAA;MACAhC,GAAA;MACAuC,IAAA;MACAlC,IAAA;MACAa,KAAA,EAAOgB,UAAA,IAAc,CAAC;IACxB;IAEA,MAAMY,qBAAA,GAAwBlE,wBAAA,CAAyB;MACrDmE,SAAA,EAAW7C,OAAA,CAAQ6C,SAAS;MAC5BC,WAAA,EAAa;QACXpD,gBAAA;QACAW,cAAA;QACAkC,IAAA;QACAQ,mBAAA,EAAqBlD,WAAA,EAAaU,WAAA,GAAcF,cAAA,CAAe,EAAE2C,MAAA,EAAQvC,UAAA;QACzEV,IAAA;QACAgB,KAAA;QACAL,eAAA;QACAuC,oBAAA,EAAsBvD,gBAAA,CAAiBiC,KAAK,CAACsB,oBAAoB;QACjEtD,MAAA,EAAQC,UAAA;QACRsD,cAAA,EAAgBzE,cAAA,CAAe;UAC7BmD,UAAA;UACAuB,IAAA,EAAM,gBAAgB9C,cAAA;QACxB;QACAb,MAAA;QACAQ,OAAA;QACAH,WAAA;QACAJ,YAAA;QACAU;MACF;IACF;IAEA,MAAMiD,aAAA,GAAgBR,qBAAA,CACpBlD,gBAAA,EAAkBiC,KAAA,EAAO0B,UAAA,EAAYC,KAAA,EAAOC,IAAA,EAAMC,SAAA,EAClDtB,SAAA,EACA9C,eAAA,EACA;IAGF,IAAIqE,sBAAA,GAAyB3E,oBAAA,CAC3BY,gBAAA;IAEF+D,sBAAA,GAAyB7E,4BAAA,CAA6B;MACpD8E,gBAAA,EAAkBD,sBAAA;MAClB5C,UAAA,EAAYnB,gBAAA;MACZkD,qBAAA;MACAzD,eAAA;MACAC,eAAA;MACAW,IAAA;MACA8C,SAAA,EAAW7C,OAAA,CAAQ6C,SAAS;MAC5B7C;IACF;IAEA,oBACE2D,KAAA,CAACzE,QAAA;8BACC0E,IAAA,CAACvF,mBAAA;QAAoBwB,WAAA,EAAaA;uBAClC+D,IAAA,CAACtF,gBAAA;QACCoB,gBAAA,EAAkB+D,sBAAA;QAClBpD,cAAA,EAAgBA,cAAA;QAChB0C,mBAAA,EAAqBlD,WAAA,EAAaU,WAAA,GAAcF,cAAA,CAAe,EAAE2C,MAAA,EAAQvC,UAAA;QACzEyC,cAAA,EAAgBzE,cAAA,CAAe;UAC7BmD,UAAA;UACAuB,IAAA,EAAM,gBAAgB9C,cAAA;QACxB;kBAEA,aAAAuD,IAAA,CAACrF,iBAAA;UACCgE,IAAA,EAAMA,IAAA;UACNH,YAAA,EAAcrB,KAAA,IAASrB,gBAAA,EAAkBiC,KAAA,EAAOQ,UAAA,EAAYC,YAAA;UAC5DE,WAAA,EAAaD,IAAA;UACbwB,kBAAkB;UAClBlD,aAAA,EAAeA,aAAA;oBAEf,aAAAiD,IAAA,CAACpF,oBAAA;YACC6B,cAAA,EAAgBA,cAAA;YAChByD,mBAAmB;YACnBpD,eAAA,EAAiBA,eAAA;YACjBC,aAAA,EAAeA,aAAA;sBAEf,aAAAiD,IAAA,CAACjF,eAAA;cACCoF,WAAA,EAAa;gBACX1D,cAAA;gBACA4C,oBAAA,EAAsBvD,gBAAA,EAAkBiC,KAAA,EAAOsB;cACjD;cACAe,eAAA,EAAiBZ;;;;;;EAO/B;EAEA,OAAOvE,QAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","admin","useAsTitle","defaultSort","fields","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","permission","Error","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","_err","routes","adminRoute","includes","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","renderedFilters","importMap","staticDescription","description","t","listViewSlots","clientProps","hasCreatePermission","create","newDocumentURL","path","isInDrawer","Boolean","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","serverProps","listSearchableFields","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { ListPreferences, ListViewClientProps } from '@payloadcms/ui'\nimport type { AdminViewProps, ListQuery, Where } from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable } from '@payloadcms/ui/rsc'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype ListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n query: ListQuery\n} & AdminViewProps\n\nexport const renderListView = async (\n args: ListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: {\n slug: collectionSlug,\n admin: { useAsTitle },\n defaultSort,\n fields,\n },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (_err) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug)) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string'\n ? collectionConfig.defaultSort\n : undefined)\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n collectionConfig: clientCollectionConfig,\n columnPreferences: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n fields,\n i18n: req.i18n,\n payload,\n useAsTitle,\n })\n\n const renderedFilters = renderFilters(fields, req.payload.importMap)\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const listViewSlots = renderListViewSlots({\n collectionConfig,\n description: staticDescription,\n payload,\n })\n\n const clientProps: ListViewClientProps = {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,\n listPreferences,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n renderedFilters,\n Table,\n }\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n preferenceKey={preferenceKey}\n >\n <RenderServerComponent\n clientProps={clientProps}\n Component={collectionConfig?.admin?.components?.views?.list?.Component}\n Fallback={DefaultListView}\n importMap={payload.importMap}\n serverProps={{\n collectionConfig,\n collectionSlug,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<ListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { ListViewSlots } from '@payloadcms/ui';
2
+ import type { Payload, SanitizedCollectionConfig, StaticDescription } from 'payload';
3
+ export declare const renderListViewSlots: ({ collectionConfig, description, payload, }: {
4
+ collectionConfig: SanitizedCollectionConfig;
5
+ description?: StaticDescription;
6
+ payload: Payload;
7
+ }) => ListViewSlots;
8
+ //# sourceMappingURL=renderListViewSlots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderListViewSlots.d.ts","sourceRoot":"","sources":["../../../src/views/List/renderListViewSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAIpF,eAAO,MAAM,mBAAmB,gDAI7B;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,aAoDH,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
+ export const renderListViewSlots = ({
4
+ collectionConfig,
5
+ description,
6
+ payload
7
+ }) => {
8
+ const result = {};
9
+ if (collectionConfig.admin.components?.afterList) {
10
+ result.AfterList = /*#__PURE__*/_jsx(RenderServerComponent, {
11
+ Component: collectionConfig.admin.components.afterList,
12
+ importMap: payload.importMap
13
+ });
14
+ }
15
+ if (collectionConfig.admin.components?.afterListTable) {
16
+ result.AfterListTable = /*#__PURE__*/_jsx(RenderServerComponent, {
17
+ Component: collectionConfig.admin.components.afterListTable,
18
+ importMap: payload.importMap
19
+ });
20
+ }
21
+ if (collectionConfig.admin.components?.beforeList) {
22
+ result.BeforeList = /*#__PURE__*/_jsx(RenderServerComponent, {
23
+ Component: collectionConfig.admin.components.beforeList,
24
+ importMap: payload.importMap
25
+ });
26
+ }
27
+ if (collectionConfig.admin.components?.beforeListTable) {
28
+ result.BeforeListTable = /*#__PURE__*/_jsx(RenderServerComponent, {
29
+ Component: collectionConfig.admin.components.beforeListTable,
30
+ importMap: payload.importMap
31
+ });
32
+ }
33
+ if (collectionConfig.admin.components?.Description) {
34
+ result.Description = /*#__PURE__*/_jsx(RenderServerComponent, {
35
+ clientProps: {
36
+ description
37
+ },
38
+ Component: collectionConfig.admin.components.Description,
39
+ importMap: payload.importMap
40
+ });
41
+ }
42
+ return result;
43
+ };
44
+ //# sourceMappingURL=renderListViewSlots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderListViewSlots.js","names":["RenderServerComponent","renderListViewSlots","collectionConfig","description","payload","result","admin","components","afterList","AfterList","_jsx","Component","importMap","afterListTable","AfterListTable","beforeList","BeforeList","beforeListTable","BeforeListTable","Description","clientProps"],"sources":["../../../src/views/List/renderListViewSlots.tsx"],"sourcesContent":["import type { ListViewSlots } from '@payloadcms/ui'\nimport type { Payload, SanitizedCollectionConfig, StaticDescription } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nexport const renderListViewSlots = ({\n collectionConfig,\n description,\n payload,\n}: {\n collectionConfig: SanitizedCollectionConfig\n description?: StaticDescription\n payload: Payload\n}): ListViewSlots => {\n const result: ListViewSlots = {} as ListViewSlots\n\n if (collectionConfig.admin.components?.afterList) {\n result.AfterList = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.afterList}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.afterListTable) {\n result.AfterListTable = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.afterListTable}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.beforeList) {\n result.BeforeList = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.beforeList}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.beforeListTable) {\n result.BeforeListTable = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.beforeListTable}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.Description) {\n result.Description = (\n <RenderServerComponent\n clientProps={{\n description,\n }}\n Component={collectionConfig.admin.components.Description}\n importMap={payload.importMap}\n />\n )\n }\n\n return result\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,gBAAgB;EAChBC,WAAW;EACXC;AAAO,CAKR;EACC,MAAMC,MAAA,GAAwB,CAAC;EAE/B,IAAIH,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEC,SAAA,EAAW;IAChDH,MAAA,CAAOI,SAAS,gBACdC,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACC,SAAS;MACtDI,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEM,cAAA,EAAgB;IACrDR,MAAA,CAAOS,cAAc,gBACnBJ,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACM,cAAc;MAC3DD,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEQ,UAAA,EAAY;IACjDV,MAAA,CAAOW,UAAU,gBACfN,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACQ,UAAU;MACvDH,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEU,eAAA,EAAiB;IACtDZ,MAAA,CAAOa,eAAe,gBACpBR,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACU,eAAe;MAC5DL,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEY,WAAA,EAAa;IAClDd,MAAA,CAAOc,WAAW,gBAChBT,IAAA,CAACV,qBAAA;MACCoB,WAAA,EAAa;QACXjB;MACF;MACAQ,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACY,WAAW;MACxDP,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,OAAOP,MAAA;AACT","ignoreList":[]}
@@ -13,8 +13,8 @@ export type SizeReducerAction = {
13
13
  };
14
14
  };
15
15
  export declare const sizeReducer: (state: SizeReducerState, action: SizeReducerAction) => {
16
- width: number;
17
16
  height: number;
17
+ width: number;
18
18
  };
19
19
  export {};
20
20
  //# sourceMappingURL=sizeReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;YAjBpE,MAAM;CA0Bf,CAAA"}
1
+ {"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;WAhBrE,MAAM;CAyBd,CAAA"}
@@ -10,15 +10,15 @@
10
10
  // },
11
11
  export const sizeReducer = (state, action) => {
12
12
  switch (action.type) {
13
- case 'width':
13
+ case 'height':
14
14
  return {
15
15
  ...state,
16
- width: action.value
16
+ height: action.value
17
17
  };
18
- case 'height':
18
+ case 'width':
19
19
  return {
20
20
  ...state,
21
- height: action.value
21
+ width: action.value
22
22
  };
23
23
  default:
24
24
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","width","value","height"],"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'width':\n return { ...state, width: action.value }\n case 'height':\n return { ...state, height: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA,OAAO,MAAMA,WAAA,GAAcA,CAACC,KAAA,EAAyBC,MAAA;EACnD,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QAAE,GAAGF,KAAK;QAAEG,KAAA,EAAOF,MAAA,CAAOG;MAAM;IACzC,KAAK;MACH,OAAO;QAAE,GAAGJ,KAAK;QAAEK,MAAA,EAAQJ,MAAA,CAAOG;MAAM;IAC1C;MACE,OAAO;QAAE,GAAGJ,KAAK;QAAE,IAAIC,MAAA,EAAQG,KAAA,IAAS,CAAC,CAAC;MAAE;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","height","value","width"],"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'height':\n return { ...state, height: action.value }\n case 'width':\n return { ...state, width: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA,OAAO,MAAMA,WAAA,GAAcA,CAACC,KAAA,EAAyBC,MAAA;EACnD,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QAAE,GAAGF,KAAK;QAAEG,MAAA,EAAQF,MAAA,CAAOG;MAAM;IAC1C,KAAK;MACH,OAAO;QAAE,GAAGJ,KAAK;QAAEK,KAAA,EAAOJ,MAAA,CAAOG;MAAM;IACzC;MACE,OAAO;QAAE,GAAGJ,KAAK;QAAE,IAAIC,MAAA,EAAQG,KAAA,IAAS,CAAC,CAAC;MAAE;EAChD;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAqBhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AASjF,OAAO,cAAc,CAAA;AA4YrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAmDA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AA2BhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAIjF,OAAO,cAAc,CAAA;AA4ZrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CA8CA,CAAA"}
@@ -2,28 +2,21 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { DocumentControls, DocumentFields, Form, OperationProvider, SetViewActions, useAuth, useConfig, useDocumentEvents, useDocumentInfo, useTranslation } from '@payloadcms/ui';
6
- import { getFormState, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
5
+ import { DocumentControls, DocumentFields, DocumentLocked, DocumentTakeOver, Form, LeaveWithoutSaving, OperationProvider, SetDocumentStepNav, SetDocumentTitle, useAuth, useConfig, useDocumentDrawerContext, useDocumentEvents, useDocumentInfo, useServerFunctions, useTranslation } from '@payloadcms/ui';
6
+ import { abortAndIgnore, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
7
7
  import { useRouter } from 'next/navigation.js';
8
8
  import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
9
- import { DocumentLocked } from '../../elements/DocumentLocked/index.js';
10
- import { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js';
11
- import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
12
- import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
13
- import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
14
9
  import { useLivePreviewContext } from './Context/context.js';
15
10
  import { LivePreviewProvider } from './Context/index.js';
16
11
  import { LivePreview } from './Preview/index.js';
17
12
  import { usePopupWindow } from './usePopupWindow.js';
18
13
  const baseClass = 'live-preview';
19
14
  const PreviewView = ({
20
- apiRoute,
21
15
  collectionConfig,
22
16
  config,
23
17
  fields,
24
18
  globalConfig,
25
- schemaPath,
26
- serverURL
19
+ schemaPath
27
20
  }) => {
28
21
  const {
29
22
  id,
@@ -31,7 +24,6 @@ const PreviewView = ({
31
24
  AfterDocument,
32
25
  AfterFields,
33
26
  apiURL,
34
- BeforeDocument,
35
27
  BeforeFields,
36
28
  collectionSlug,
37
29
  currentEditor,
@@ -48,12 +40,17 @@ const PreviewView = ({
48
40
  isEditing,
49
41
  isInitializing,
50
42
  lastUpdateTime,
51
- onSave: onSaveFromProps,
52
43
  setCurrentEditor,
53
44
  setDocumentIsLocked,
54
45
  unlockDocument,
55
46
  updateDocumentEditor
56
47
  } = useDocumentInfo();
48
+ const {
49
+ getFormState
50
+ } = useServerFunctions();
51
+ const {
52
+ onSave: onSaveFromProps
53
+ } = useDocumentDrawerContext();
57
54
  const operation = id ? 'update' : 'create';
58
55
  const {
59
56
  config: {
@@ -88,6 +85,7 @@ const PreviewView = ({
88
85
  const lockDurationInMilliseconds = lockDuration * 1000;
89
86
  const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
90
87
  const [showTakeOverModal, setShowTakeOverModal] = useState(false);
88
+ const formStateAbortControllerRef = useRef(new AbortController());
91
89
  const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
92
90
  const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
93
91
  const isLockExpired = Date.now() > lockExpiryTime;
@@ -121,6 +119,9 @@ const PreviewView = ({
121
119
  const onChange = useCallback(async ({
122
120
  formState: prevFormState
123
121
  }) => {
122
+ abortAndIgnore(formStateAbortControllerRef.current);
123
+ const controller = new AbortController();
124
+ formStateAbortControllerRef.current = controller;
124
125
  const currentTime = Date.now();
125
126
  const timeSinceLastUpdate = currentTime - editSessionStartTime;
126
127
  const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
@@ -133,26 +134,25 @@ const PreviewView = ({
133
134
  lockedState,
134
135
  state
135
136
  } = await getFormState({
136
- apiRoute,
137
- body: {
138
- id,
139
- collectionSlug,
140
- docPreferences,
141
- formState: prevFormState,
142
- globalSlug,
143
- operation,
144
- returnLockStatus: isLockingEnabled ? true : false,
145
- schemaPath,
146
- updateLastEdited
147
- },
148
- serverURL
137
+ id,
138
+ collectionSlug,
139
+ docPermissions,
140
+ docPreferences,
141
+ formState: prevFormState,
142
+ globalSlug,
143
+ operation,
144
+ returnLockStatus: isLockingEnabled ? true : false,
145
+ schemaPath,
146
+ signal: controller.signal,
147
+ updateLastEdited
149
148
  });
150
149
  setDocumentIsLocked(true);
151
150
  if (isLockingEnabled) {
152
151
  const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
153
152
  if (lockedState) {
154
- if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {
155
- if (previousOwnerId === user.id && lockedState.user.id !== user.id) {
153
+ const lockedUserID = typeof lockedState.user === 'string' || typeof lockedState.user === 'number' ? lockedState.user : lockedState.user.id;
154
+ if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {
155
+ if (previousOwnerId === user.id && lockedUserID !== user.id) {
156
156
  setShowTakeOverModal(true);
157
157
  documentLockStateRef.current.hasShownLockedModal = true;
158
158
  }
@@ -166,7 +166,7 @@ const PreviewView = ({
166
166
  }
167
167
  }
168
168
  return state;
169
- }, [collectionSlug, editSessionStartTime, globalSlug, serverURL, apiRoute, id, isLockingEnabled, operation, schemaPath, getDocPreferences, setCurrentEditor, setDocumentIsLocked, user]);
169
+ }, [editSessionStartTime, isLockingEnabled, getDocPreferences, getFormState, id, collectionSlug, docPermissions, globalSlug, operation, schemaPath, setDocumentIsLocked, user.id, setCurrentEditor]);
170
170
  // Clean up when the component unmounts or when the document is unlocked
171
171
  useEffect(() => {
172
172
  return () => {
@@ -190,6 +190,11 @@ const PreviewView = ({
190
190
  setShowTakeOverModal(false);
191
191
  };
192
192
  }, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
193
+ useEffect(() => {
194
+ return () => {
195
+ abortAndIgnore(formStateAbortControllerRef.current);
196
+ };
197
+ });
193
198
  const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
194
199
  // eslint-disable-next-line react-compiler/react-compiler
195
200
  !documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
@@ -258,14 +263,14 @@ const PreviewView = ({
258
263
  className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
259
264
  children: [/*#__PURE__*/_jsxs("div", {
260
265
  className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
261
- children: [BeforeDocument, /*#__PURE__*/_jsx(DocumentFields, {
266
+ children: [/*#__PURE__*/_jsx(DocumentFields, {
262
267
  AfterFields: AfterFields,
263
268
  BeforeFields: BeforeFields,
264
269
  docPermissions: docPermissions,
265
270
  fields: fields,
266
271
  forceSidebarWrap: true,
267
272
  readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
268
- schemaPath: collectionSlug || globalSlug
273
+ schemaPathSegments: [collectionSlug || globalSlug]
269
274
  }), AfterDocument]
270
275
  }), /*#__PURE__*/_jsx(LivePreview, {
271
276
  collectionSlug: collectionSlug,
@@ -322,10 +327,8 @@ export const LivePreviewClient = props => {
322
327
  globalSlug
323
328
  });
324
329
  const schemaPath = collectionSlug || globalSlug;
325
- t3 = _jsxs(Fragment, {
326
- children: [_jsx(SetViewActions, {
327
- actions: (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions
328
- }), _jsx(LivePreviewProvider, {
330
+ t3 = _jsx(Fragment, {
331
+ children: _jsx(LivePreviewProvider, {
329
332
  breakpoints,
330
333
  fieldSchema: collectionConfig?.fields || globalConfig?.fields,
331
334
  isPopupOpen,
@@ -341,7 +344,7 @@ export const LivePreviewClient = props => {
341
344
  schemaPath,
342
345
  serverURL
343
346
  })
344
- })]
347
+ })
345
348
  });
346
349
  $[2] = collectionSlug;
347
350
  $[3] = getEntityConfig;