@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50

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 (442) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +2 -43
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +2 -5
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -2
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +13 -4
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
  14. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.d.ts +0 -2
  16. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  24. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.d.ts.map +1 -1
  29. package/dist/elements/EditMany/index.js +3 -25
  30. package/dist/elements/EditMany/index.js.map +1 -1
  31. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  32. package/dist/elements/FieldSelect/index.js +39 -12
  33. package/dist/elements/FieldSelect/index.js.map +1 -1
  34. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/index.js +2 -1
  36. package/dist/elements/FileDetails/index.js.map +1 -1
  37. package/dist/elements/ListControls/index.d.ts +0 -1
  38. package/dist/elements/ListControls/index.d.ts.map +1 -1
  39. package/dist/elements/ListControls/index.js +7 -6
  40. package/dist/elements/ListControls/index.js.map +1 -1
  41. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/ListDrawer/DrawerContent.js +5 -9
  43. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  44. package/dist/elements/Nav/index.client.d.ts +3 -0
  45. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  46. package/dist/elements/Nav/index.client.js +77 -0
  47. package/dist/elements/Nav/index.client.js.map +1 -0
  48. package/dist/elements/Nav/index.d.ts +3 -7
  49. package/dist/elements/Nav/index.d.ts.map +1 -1
  50. package/dist/elements/Nav/index.js +4 -66
  51. package/dist/elements/Nav/index.js.map +1 -1
  52. package/dist/elements/PerPage/index.d.ts +1 -0
  53. package/dist/elements/PerPage/index.d.ts.map +1 -1
  54. package/dist/elements/PerPage/index.js +6 -4
  55. package/dist/elements/PerPage/index.js.map +1 -1
  56. package/dist/elements/PreviewButton/index.d.ts +4 -6
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +11 -65
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
  62. package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
  64. package/dist/elements/Publish/index.d.ts +4 -2
  65. package/dist/elements/Publish/index.d.ts.map +1 -1
  66. package/dist/elements/Publish/index.js +15 -25
  67. package/dist/elements/Publish/index.js.map +1 -1
  68. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  69. package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
  70. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
  72. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  73. package/dist/elements/ReactSelect/index.js +4 -1
  74. package/dist/elements/ReactSelect/index.js.map +1 -1
  75. package/dist/elements/ReactSelect/types.d.ts +2 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/Save/index.d.ts +4 -2
  79. package/dist/elements/Save/index.d.ts.map +1 -1
  80. package/dist/elements/Save/index.js +7 -14
  81. package/dist/elements/Save/index.js.map +1 -1
  82. package/dist/elements/SaveDraft/index.d.ts +1 -2
  83. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  84. package/dist/elements/SaveDraft/index.js +33 -42
  85. package/dist/elements/SaveDraft/index.js.map +1 -1
  86. package/dist/elements/SortColumn/index.d.ts +3 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js +5 -6
  89. package/dist/elements/SortColumn/index.js.map +1 -1
  90. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
  91. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  92. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  93. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
  94. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
  97. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  98. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  99. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
  100. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  102. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
  103. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
  106. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  107. package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
  108. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  109. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
  110. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  111. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
  113. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
  116. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  117. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
  119. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  122. package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +4 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
  127. package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
  128. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  129. package/dist/elements/Table/index.d.ts +8 -4
  130. package/dist/elements/Table/index.d.ts.map +1 -1
  131. package/dist/elements/Table/index.js +1 -0
  132. package/dist/elements/Table/index.js.map +1 -1
  133. package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
  134. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  135. package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
  136. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  137. package/dist/elements/TableColumns/filterFields.d.ts +3 -0
  138. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  139. package/dist/elements/TableColumns/filterFields.js +27 -0
  140. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  141. package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
  142. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  143. package/dist/elements/TableColumns/getInitialColumns.js +48 -0
  144. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  145. package/dist/elements/TableColumns/index.d.ts +2 -2
  146. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  147. package/dist/elements/TableColumns/index.js +11 -7
  148. package/dist/elements/TableColumns/index.js.map +1 -1
  149. package/dist/elements/Thumbnail/index.d.ts +6 -0
  150. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  151. package/dist/elements/Thumbnail/index.js +32 -16
  152. package/dist/elements/Thumbnail/index.js.map +1 -1
  153. package/dist/elements/ThumbnailCard/index.d.ts +1 -1
  154. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  155. package/dist/elements/ThumbnailCard/index.js +2 -6
  156. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  157. package/dist/elements/Tooltip/index.scss +4 -4
  158. package/dist/elements/Translation/index.d.ts.map +1 -1
  159. package/dist/elements/Translation/index.js +12 -9
  160. package/dist/elements/Translation/index.js.map +1 -1
  161. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  162. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
  163. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  164. package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
  165. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  166. package/dist/elements/WhereBuilder/Condition/index.js +45 -61
  167. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  168. package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
  169. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  170. package/dist/elements/WhereBuilder/index.js +134 -55
  171. package/dist/elements/WhereBuilder/index.js.map +1 -1
  172. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
  173. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
  174. package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
  175. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
  176. package/dist/elements/withMergedProps/index.js +1 -1
  177. package/dist/elements/withMergedProps/index.js.map +1 -1
  178. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  179. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  180. package/dist/fields/Array/ArrayRow.js +3 -3
  181. package/dist/fields/Array/ArrayRow.js.map +1 -1
  182. package/dist/fields/Array/index.d.ts +1 -1
  183. package/dist/fields/Array/index.d.ts.map +1 -1
  184. package/dist/fields/Array/index.js +23 -8
  185. package/dist/fields/Array/index.js.map +1 -1
  186. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  187. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  188. package/dist/fields/Blocks/BlockRow.js +2 -3
  189. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts +0 -1
  191. package/dist/fields/Blocks/index.d.ts.map +1 -1
  192. package/dist/fields/Blocks/index.js +17 -5
  193. package/dist/fields/Blocks/index.js.map +1 -1
  194. package/dist/fields/Checkbox/Input.d.ts +2 -1
  195. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  196. package/dist/fields/Checkbox/Input.js +3 -1
  197. package/dist/fields/Checkbox/Input.js.map +1 -1
  198. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  199. package/dist/fields/Checkbox/index.js +6 -2
  200. package/dist/fields/Checkbox/index.js.map +1 -1
  201. package/dist/fields/Code/index.d.ts.map +1 -1
  202. package/dist/fields/Code/index.js +8 -3
  203. package/dist/fields/Code/index.js.map +1 -1
  204. package/dist/fields/Collapsible/index.d.ts +2 -1
  205. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  206. package/dist/fields/Collapsible/index.js +4 -3
  207. package/dist/fields/Collapsible/index.js.map +1 -1
  208. package/dist/fields/DateTime/index.d.ts.map +1 -1
  209. package/dist/fields/DateTime/index.js +7 -2
  210. package/dist/fields/DateTime/index.js.map +1 -1
  211. package/dist/fields/Email/index.d.ts.map +1 -1
  212. package/dist/fields/Email/index.js +7 -2
  213. package/dist/fields/Email/index.js.map +1 -1
  214. package/dist/fields/Group/index.d.ts +0 -1
  215. package/dist/fields/Group/index.d.ts.map +1 -1
  216. package/dist/fields/Group/index.js +9 -8
  217. package/dist/fields/Group/index.js.map +1 -1
  218. package/dist/fields/HiddenInput/index.d.ts +1 -0
  219. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  220. package/dist/fields/HiddenInput/index.js +4 -2
  221. package/dist/fields/HiddenInput/index.js.map +1 -1
  222. package/dist/fields/JSON/index.d.ts.map +1 -1
  223. package/dist/fields/JSON/index.js +8 -4
  224. package/dist/fields/JSON/index.js.map +1 -1
  225. package/dist/fields/Number/index.d.ts.map +1 -1
  226. package/dist/fields/Number/index.js +7 -2
  227. package/dist/fields/Number/index.js.map +1 -1
  228. package/dist/fields/Password/index.d.ts +0 -1
  229. package/dist/fields/Password/index.d.ts.map +1 -1
  230. package/dist/fields/Password/index.js +5 -2
  231. package/dist/fields/Password/index.js.map +1 -1
  232. package/dist/fields/Point/index.d.ts.map +1 -1
  233. package/dist/fields/Point/index.js +15 -10
  234. package/dist/fields/Point/index.js.map +1 -1
  235. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  236. package/dist/fields/RadioGroup/index.js +7 -2
  237. package/dist/fields/RadioGroup/index.js.map +1 -1
  238. package/dist/fields/Relationship/index.d.ts.map +1 -1
  239. package/dist/fields/Relationship/index.js +45 -14
  240. package/dist/fields/Relationship/index.js.map +1 -1
  241. package/dist/fields/Relationship/types.d.ts +3 -1
  242. package/dist/fields/Relationship/types.d.ts.map +1 -1
  243. package/dist/fields/Relationship/types.js.map +1 -1
  244. package/dist/fields/RichText/index.d.ts +2 -0
  245. package/dist/fields/RichText/index.d.ts.map +1 -1
  246. package/dist/fields/RichText/index.js.map +1 -1
  247. package/dist/fields/Row/index.d.ts.map +1 -1
  248. package/dist/fields/Row/index.js +2 -1
  249. package/dist/fields/Row/index.js.map +1 -1
  250. package/dist/fields/Select/index.d.ts +0 -1
  251. package/dist/fields/Select/index.d.ts.map +1 -1
  252. package/dist/fields/Select/index.js +8 -3
  253. package/dist/fields/Select/index.js.map +1 -1
  254. package/dist/fields/Tabs/index.d.ts +0 -1
  255. package/dist/fields/Tabs/index.d.ts.map +1 -1
  256. package/dist/fields/Tabs/index.js +2 -2
  257. package/dist/fields/Tabs/index.js.map +1 -1
  258. package/dist/fields/Text/Input.d.ts.map +1 -1
  259. package/dist/fields/Text/Input.js +4 -1
  260. package/dist/fields/Text/Input.js.map +1 -1
  261. package/dist/fields/Text/index.d.ts.map +1 -1
  262. package/dist/fields/Text/index.js +3 -1
  263. package/dist/fields/Text/index.js.map +1 -1
  264. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  265. package/dist/fields/Textarea/Input.js +4 -1
  266. package/dist/fields/Textarea/Input.js.map +1 -1
  267. package/dist/fields/Textarea/index.d.ts.map +1 -1
  268. package/dist/fields/Textarea/index.js +3 -1
  269. package/dist/fields/Textarea/index.js.map +1 -1
  270. package/dist/fields/Upload/Input.d.ts.map +1 -1
  271. package/dist/fields/Upload/Input.js +10 -8
  272. package/dist/fields/Upload/Input.js.map +1 -1
  273. package/dist/fields/Upload/index.d.ts.map +1 -1
  274. package/dist/fields/Upload/index.js +6 -2
  275. package/dist/fields/Upload/index.js.map +1 -1
  276. package/dist/fields/shared/index.d.ts +1 -2
  277. package/dist/fields/shared/index.d.ts.map +1 -1
  278. package/dist/fields/shared/index.js.map +1 -1
  279. package/dist/forms/FieldDescription/index.d.ts +1 -2
  280. package/dist/forms/FieldDescription/index.d.ts.map +1 -1
  281. package/dist/forms/FieldDescription/index.js.map +1 -1
  282. package/dist/forms/FieldError/index.js +1 -1
  283. package/dist/forms/FieldError/index.js.map +1 -1
  284. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  285. package/dist/forms/FieldLabel/index.js +4 -4
  286. package/dist/forms/FieldLabel/index.js.map +1 -1
  287. package/dist/forms/FieldLabel/index.scss +1 -1
  288. package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
  289. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  290. package/dist/forms/FieldPropsProvider/index.js +5 -1
  291. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  292. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  293. package/dist/forms/Form/fieldReducer.js +6 -8
  294. package/dist/forms/Form/fieldReducer.js.map +1 -1
  295. package/dist/forms/Form/index.d.ts.map +1 -1
  296. package/dist/forms/Form/index.js +37 -20
  297. package/dist/forms/Form/index.js.map +1 -1
  298. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  299. package/dist/forms/Form/initContextState.js +1 -0
  300. package/dist/forms/Form/initContextState.js.map +1 -1
  301. package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
  302. package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
  303. package/dist/forms/Form/mergeErrorPaths.js +29 -0
  304. package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
  305. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  306. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  307. package/dist/forms/Form/mergeServerFormState.js +36 -19
  308. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  309. package/dist/forms/Form/types.d.ts +8 -2
  310. package/dist/forms/Form/types.d.ts.map +1 -1
  311. package/dist/forms/Form/types.js.map +1 -1
  312. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  313. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  314. package/dist/forms/RenderFields/RenderField.js +12 -4
  315. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  316. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  317. package/dist/forms/RenderFields/index.js +3 -3
  318. package/dist/forms/RenderFields/index.js.map +1 -1
  319. package/dist/forms/RenderFields/types.d.ts +1 -0
  320. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  321. package/dist/forms/RenderFields/types.js.map +1 -1
  322. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
  323. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  324. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
  325. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  326. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
  327. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
  328. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
  329. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
  330. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
  331. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
  332. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
  333. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
  334. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
  335. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
  336. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
  337. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
  338. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  339. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  340. package/dist/forms/buildStateFromSchema/index.js +10 -2
  341. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  342. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  343. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
  345. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  346. package/dist/forms/useField/index.d.ts.map +1 -1
  347. package/dist/forms/useField/index.js +32 -12
  348. package/dist/forms/useField/index.js.map +1 -1
  349. package/dist/forms/useField/types.d.ts +1 -0
  350. package/dist/forms/useField/types.d.ts.map +1 -1
  351. package/dist/forms/useField/types.js.map +1 -1
  352. package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
  353. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  354. package/dist/forms/withCondition/WatchCondition.js +10 -2
  355. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  356. package/dist/forms/withCondition/index.js +4 -2
  357. package/dist/forms/withCondition/index.js.map +1 -1
  358. package/dist/hooks/usePayloadAPI.js +1 -1
  359. package/dist/hooks/usePayloadAPI.js.map +1 -1
  360. package/dist/hooks/useUseAsTitle.d.ts +3 -2
  361. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  362. package/dist/hooks/useUseAsTitle.js +5 -6
  363. package/dist/hooks/useUseAsTitle.js.map +1 -1
  364. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  365. package/dist/providers/ClientFunction/index.js +27 -5
  366. package/dist/providers/ClientFunction/index.js.map +1 -1
  367. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
  368. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
  369. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
  370. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
  371. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
  372. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
  373. package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
  374. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
  375. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
  376. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
  377. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
  378. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
  379. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
  380. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
  381. package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
  382. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
  383. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
  384. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
  386. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  387. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
  388. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  389. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  390. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  391. package/dist/providers/DocumentInfo/index.js +120 -96
  392. package/dist/providers/DocumentInfo/index.js.map +1 -1
  393. package/dist/providers/DocumentInfo/types.d.ts +12 -13
  394. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  395. package/dist/providers/DocumentInfo/types.js.map +1 -1
  396. package/dist/providers/EntityVisibility/index.d.ts +16 -0
  397. package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
  398. package/dist/providers/EntityVisibility/index.js +25 -0
  399. package/dist/providers/EntityVisibility/index.js.map +1 -0
  400. package/dist/providers/ListInfo/index.d.ts +0 -1
  401. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  402. package/dist/providers/ListInfo/index.js +2 -7
  403. package/dist/providers/ListInfo/index.js.map +1 -1
  404. package/dist/templates/Default/index.d.ts +2 -7
  405. package/dist/templates/Default/index.d.ts.map +1 -1
  406. package/dist/templates/Default/index.js +10 -12
  407. package/dist/templates/Default/index.js.map +1 -1
  408. package/dist/utilities/buildComponentMap.d.ts +1 -1
  409. package/dist/utilities/buildComponentMap.d.ts.map +1 -1
  410. package/dist/utilities/buildComponentMap.js +1 -1
  411. package/dist/utilities/buildComponentMap.js.map +1 -1
  412. package/dist/utilities/flattenFieldMap.d.ts +10 -0
  413. package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
  414. package/dist/utilities/flattenFieldMap.js +33 -0
  415. package/dist/utilities/flattenFieldMap.js.map +1 -0
  416. package/dist/utilities/getFormState.d.ts +2 -0
  417. package/dist/utilities/getFormState.d.ts.map +1 -1
  418. package/dist/utilities/getFormState.js +8 -3
  419. package/dist/utilities/getFormState.js.map +1 -1
  420. package/package.json +10 -4
  421. package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
  422. package/dist/elements/TableColumns/buildColumns.js.map +0 -1
  423. package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
  424. package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
  425. package/dist/elements/WhereBuilder/reducer.js +0 -78
  426. package/dist/elements/WhereBuilder/reducer.js.map +0 -1
  427. package/dist/forms/FieldDescription/types.d.ts +0 -8
  428. package/dist/forms/FieldDescription/types.d.ts.map +0 -1
  429. package/dist/forms/FieldDescription/types.js +0 -3
  430. package/dist/forms/FieldDescription/types.js.map +0 -1
  431. package/dist/hooks/useAdminThumbnail.d.ts +0 -3
  432. package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
  433. package/dist/hooks/useAdminThumbnail.js +0 -8
  434. package/dist/hooks/useAdminThumbnail.js.map +0 -1
  435. package/dist/hooks/useThumbnail.d.ts +0 -3
  436. package/dist/hooks/useThumbnail.d.ts.map +0 -1
  437. package/dist/hooks/useThumbnail.js +0 -45
  438. package/dist/hooks/useThumbnail.js.map +0 -1
  439. package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
  440. package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
  441. package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
  442. package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,KAAmD,MAAM,OAAO,CAAA;AAWvE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqJpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/E,OAAO,KAAsC,MAAM,OAAO,CAAA;AAU1D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkHpC,CAAA"}
@@ -1,7 +1,5 @@
1
1
  'use client';
2
- import { useRouter } from 'next/navigation.js';
3
- import React, { useCallback, useEffect, useRef, useState } from 'react';
4
- import { toast } from 'react-toastify';
2
+ import React, { useEffect, useRef, useState } from 'react';
5
3
  import { useAllFormFields, useFormModified } from '../../forms/Form/context.js';
6
4
  import { useDebounce } from '../../hooks/useDebounce.js';
7
5
  import { useConfig } from '../../providers/Config/index.js';
@@ -12,13 +10,12 @@ import { formatTimeToNow } from '../../utilities/formatDate.js';
12
10
  import { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js';
13
11
  const baseClass = 'autosave';
14
12
  export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdatedAt })=>{
15
- const { routes: { admin, api }, serverURL } = useConfig();
13
+ const { routes: { api }, serverURL } = useConfig();
16
14
  const { docConfig, getVersions, versions } = useDocumentInfo();
17
15
  const versionsConfig = docConfig?.versions;
18
16
  const [fields] = useAllFormFields();
19
17
  const modified = useFormModified();
20
18
  const { code: locale } = useLocale();
21
- const router = useRouter();
22
19
  const { i18n, t } = useTranslation();
23
20
  let interval = 800;
24
21
  if (versionsConfig.drafts && versionsConfig?.drafts?.autosave) interval = versionsConfig.drafts.autosave.interval;
@@ -39,44 +36,6 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
39
36
  // Store locale in ref so the autosave func
40
37
  // can always retrieve the most to date locale
41
38
  localeRef.current = locale;
42
- const createCollectionDoc = useCallback(async ()=>{
43
- const res = await fetch(`${serverURL}${api}/${collection.slug}?locale=${locale}&fallback-locale=null&depth=0&draft=true&autosave=true`, {
44
- body: JSON.stringify({}),
45
- credentials: 'include',
46
- headers: {
47
- 'Accept-Language': i18n.language,
48
- 'Content-Type': 'application/json'
49
- },
50
- method: 'POST'
51
- });
52
- if (res.status === 201) {
53
- const json = await res.json();
54
- router.replace(`${admin}/collections/${collection.slug}/${json.doc.id}`, {
55
- });
56
- } else {
57
- toast.error(t('error:autosaving'));
58
- }
59
- }, [
60
- i18n,
61
- serverURL,
62
- api,
63
- collection,
64
- locale,
65
- router,
66
- admin,
67
- t
68
- ]);
69
- useEffect(()=>{
70
- // If no ID, but this is used for a collection doc,
71
- // Immediately save it and set lastSaved
72
- if (!id && collection) {
73
- void createCollectionDoc();
74
- }
75
- }, [
76
- id,
77
- collection,
78
- createCollectionDoc
79
- ]);
80
39
  // When debounced fields change, autosave
81
40
  useEffect(()=>{
82
41
  const autosave = ()=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload/types'\n\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAllFormFields, useFormModified } from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n\n let interval = 800\n if (versionsConfig.drafts && versionsConfig?.drafts?.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const createCollectionDoc = useCallback(async () => {\n const res = await fetch(\n `${serverURL}${api}/${collection.slug}?locale=${locale}&fallback-locale=null&depth=0&draft=true&autosave=true`,\n {\n body: JSON.stringify({}),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (res.status === 201) {\n const json = await res.json()\n router.replace(`${admin}/collections/${collection.slug}/${json.doc.id}`, {\n // state: {\n // data: json.doc,\n // },\n })\n } else {\n toast.error(t('error:autosaving'))\n }\n }, [i18n, serverURL, api, collection, locale, router, admin, t])\n\n useEffect(() => {\n // If no ID, but this is used for a collection doc,\n // Immediately save it and set lastSaved\n if (!id && collection) {\n void createCollectionDoc()\n }\n }, [id, collection, createCollectionDoc])\n\n // When debounced fields change, autosave\n useEffect(() => {\n const autosave = () => {\n if (modified) {\n setSaving(true)\n\n let url: string\n let method: string\n\n if (collection && id) {\n url = `${serverURL}${api}/${collection.slug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n url = `${serverURL}${api}/globals/${globalDoc.slug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n setTimeout(async () => {\n if (modifiedRef.current) {\n const body = {\n ...reduceFieldsToValues(fieldRef.current, true),\n _status: 'draft',\n }\n const res = await fetch(url, {\n body: JSON.stringify(body),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n })\n\n if (res.status === 200) {\n setLastSaved(new Date().getTime())\n void getVersions()\n }\n }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n }, [i18n, debouncedFields, modified, serverURL, api, collection, globalDoc, id, getVersions])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow(lastSaved, i18n.language),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["useRouter","React","useCallback","useEffect","useRef","useState","toast","useAllFormFields","useFormModified","useDebounce","useConfig","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValues","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","admin","api","serverURL","docConfig","getVersions","versions","versionsConfig","fields","modified","code","locale","router","i18n","t","interval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","fieldRef","modifiedRef","localeRef","current","createCollectionDoc","res","fetch","slug","body","JSON","stringify","credentials","headers","language","method","status","json","replace","doc","error","url","setTimeout","_status","Date","getTime","docs","updatedAt","div","className","Fragment","distance"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload/types'\n\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { useAllFormFields, useFormModified } from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = 800\n if (versionsConfig.drafts && versionsConfig?.drafts?.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n // When debounced fields change, autosave\n useEffect(() => {\n const autosave = () => {\n if (modified) {\n setSaving(true)\n\n let url: string\n let method: string\n\n if (collection && id) {\n url = `${serverURL}${api}/${collection.slug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n url = `${serverURL}${api}/globals/${globalDoc.slug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n setTimeout(async () => {\n if (modifiedRef.current) {\n const body = {\n ...reduceFieldsToValues(fieldRef.current, true),\n _status: 'draft',\n }\n const res = await fetch(url, {\n body: JSON.stringify(body),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n })\n\n if (res.status === 200) {\n setLastSaved(new Date().getTime())\n void getVersions()\n }\n }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n }, [i18n, debouncedFields, modified, serverURL, api, collection, globalDoc, id, getVersions])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow(lastSaved, i18n.language),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["React","useEffect","useRef","useState","useAllFormFields","useFormModified","useDebounce","useConfig","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValues","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","versionsConfig","fields","modified","code","locale","i18n","t","interval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","fieldRef","modifiedRef","localeRef","current","url","method","slug","setTimeout","body","_status","res","fetch","JSON","stringify","credentials","headers","language","status","Date","getTime","docs","updatedAt","div","className","Fragment","distance"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelector/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,KAAgB,MAAM,OAAO,CAAA;AASpC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkD1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelector/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,KAAgB,MAAM,OAAO,CAAA;AAQpC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiD1C,CAAA"}
@@ -1,17 +1,14 @@
1
1
  'use client';
2
- import { getTranslation } from '@payloadcms/translations';
3
2
  import React, { useId } from 'react';
4
3
  import { Plus } from '../../icons/Plus/index.js';
5
4
  import { X } from '../../icons/X/index.js';
6
5
  import { useEditDepth } from '../../providers/EditDepth/index.js';
7
- import { useTranslation } from '../../providers/Translation/index.js';
8
6
  import { DraggableSortable } from '../DraggableSortable/index.js';
9
7
  import { Pill } from '../Pill/index.js';
10
8
  import { useTableColumns } from '../TableColumns/index.js';
11
9
  const baseClass = 'column-selector';
12
10
  export const ColumnSelector = ({ collectionSlug })=>{
13
11
  const { columns, moveColumn, toggleColumn } = useTableColumns();
14
- const { i18n } = useTranslation();
15
12
  const uuid = useId();
16
13
  const editDepth = useEditDepth();
17
14
  if (!columns) {
@@ -28,7 +25,7 @@ export const ColumnSelector = ({ collectionSlug })=>{
28
25
  }
29
26
  }, columns.map((col, i)=>{
30
27
  if (!col) return null;
31
- const { name, accessor, active, label } = col;
28
+ const { Label, accessor, active } = col;
32
29
  if (col.accessor === '_select') return null;
33
30
  return /*#__PURE__*/ React.createElement(Pill, {
34
31
  alignIcon: "left",
@@ -44,7 +41,7 @@ export const ColumnSelector = ({ collectionSlug })=>{
44
41
  onClick: ()=>{
45
42
  toggleColumn(accessor);
46
43
  }
47
- }, getTranslation(label || name, i18n));
44
+ }, Label);
48
45
  }));
49
46
  };
50
47
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useId } from 'react'\n\nimport { Plus } from '../../icons/Plus/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const { i18n } = useTranslation()\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={columns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {columns.map((col, i) => {\n if (!col) return null\n\n const { name, accessor, active, label } = col\n\n if (col.accessor === '_select') return null\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <X /> : <Plus />}\n id={accessor}\n key={`${collectionSlug}-${col.name || i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n toggleColumn(accessor)\n }}\n >\n {getTranslation(label || name, i18n)}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"names":["getTranslation","React","useId","Plus","X","useEditDepth","useTranslation","DraggableSortable","Pill","useTableColumns","baseClass","ColumnSelector","collectionSlug","columns","moveColumn","toggleColumn","i18n","uuid","editDepth","className","ids","map","col","accessor","onDragEnd","moveFromIndex","moveToIndex","fromIndex","toIndex","i","name","active","label","alignIcon","aria-checked","filter","Boolean","join","draggable","icon","id","key","onClick"],"mappings":"AAAA;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,KAAK,QAAQ,QAAO;AAEpC,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,IAAI,QAAQ,mBAAkB;AACvC,SAASC,eAAe,QAAQ,2BAA0B;AAG1D,MAAMC,YAAY;AAMlB,OAAO,MAAMC,iBAAkC,CAAC,EAAEC,cAAc,EAAE;IAChE,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGN;IAE9C,MAAM,EAAEO,IAAI,EAAE,GAAGV;IACjB,MAAMW,OAAOf;IACb,MAAMgB,YAAYb;IAElB,IAAI,CAACQ,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,oBAACN;QACCY,WAAWT;QACXU,KAAKP,QAAQQ,GAAG,CAAC,CAACC,MAAQA,KAAKC;QAC/BC,WAAW,CAAC,EAAEC,aAAa,EAAEC,WAAW,EAAE;YACxCZ,WAAW;gBACTa,WAAWF;gBACXG,SAASF;YACX;QACF;OAECb,QAAQQ,GAAG,CAAC,CAACC,KAAKO;QACjB,IAAI,CAACP,KAAK,OAAO;QAEjB,MAAM,EAAEQ,IAAI,EAAEP,QAAQ,EAAEQ,MAAM,EAAEC,KAAK,EAAE,GAAGV;QAE1C,IAAIA,IAAIC,QAAQ,KAAK,WAAW,OAAO;QAEvC,qBACE,oBAACf;YACCyB,WAAU;YACVC,gBAAcH;YACdZ,WAAW;gBAAC,CAAC,EAAET,UAAU,QAAQ,CAAC;gBAAEqB,UAAU,CAAC,EAAErB,UAAU,gBAAgB,CAAC;aAAC,CAC1EyB,MAAM,CAACC,SACPC,IAAI,CAAC;YACRC,WAAAA;YACAC,MAAMR,uBAAS,oBAAC3B,yBAAO,oBAACD;YACxBqC,IAAIjB;YACJkB,KAAK,CAAC,EAAE7B,eAAe,CAAC,EAAEU,IAAIQ,IAAI,IAAID,EAAE,EAAEX,YAAY,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,GAAG,GAAG,EAAED,KAAK,CAAC;YACpFyB,SAAS;gBACP3B,aAAaQ;YACf;WAECvB,eAAegC,SAASF,MAAMd;IAGrC;AAGN,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport React, { useId } from 'react'\n\nimport { Plus } from '../../icons/Plus/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={columns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {columns.map((col, i) => {\n if (!col) return null\n\n const { Label, accessor, active } = col\n\n if (col.accessor === '_select') return null\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <X /> : <Plus />}\n id={accessor}\n key={`${collectionSlug}-${col.name || i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n toggleColumn(accessor)\n }}\n >\n {Label}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"names":["React","useId","Plus","X","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","ColumnSelector","collectionSlug","columns","moveColumn","toggleColumn","uuid","editDepth","className","ids","map","col","accessor","onDragEnd","moveFromIndex","moveToIndex","fromIndex","toIndex","i","Label","active","alignIcon","aria-checked","filter","Boolean","join","draggable","icon","id","key","name","onClick"],"mappings":"AAAA;AAGA,OAAOA,SAASC,KAAK,QAAQ,QAAO;AAEpC,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,IAAI,QAAQ,mBAAkB;AACvC,SAASC,eAAe,QAAQ,2BAA0B;AAG1D,MAAMC,YAAY;AAMlB,OAAO,MAAMC,iBAAkC,CAAC,EAAEC,cAAc,EAAE;IAChE,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGN;IAE9C,MAAMO,OAAOb;IACb,MAAMc,YAAYX;IAElB,IAAI,CAACO,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,oBAACN;QACCW,WAAWR;QACXS,KAAKN,QAAQO,GAAG,CAAC,CAACC,MAAQA,KAAKC;QAC/BC,WAAW,CAAC,EAAEC,aAAa,EAAEC,WAAW,EAAE;YACxCX,WAAW;gBACTY,WAAWF;gBACXG,SAASF;YACX;QACF;OAECZ,QAAQO,GAAG,CAAC,CAACC,KAAKO;QACjB,IAAI,CAACP,KAAK,OAAO;QAEjB,MAAM,EAAEQ,KAAK,EAAEP,QAAQ,EAAEQ,MAAM,EAAE,GAAGT;QAEpC,IAAIA,IAAIC,QAAQ,KAAK,WAAW,OAAO;QAEvC,qBACE,oBAACd;YACCuB,WAAU;YACVC,gBAAcF;YACdZ,WAAW;gBAAC,CAAC,EAAER,UAAU,QAAQ,CAAC;gBAAEoB,UAAU,CAAC,EAAEpB,UAAU,gBAAgB,CAAC;aAAC,CAC1EuB,MAAM,CAACC,SACPC,IAAI,CAAC;YACRC,WAAAA;YACAC,MAAMP,uBAAS,oBAACzB,yBAAO,oBAACD;YACxBkC,IAAIhB;YACJiB,KAAK,CAAC,EAAE3B,eAAe,CAAC,EAAES,IAAImB,IAAI,IAAIZ,EAAE,EAAEX,YAAY,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,GAAG,GAAG,EAAED,KAAK,CAAC;YACpFyB,SAAS;gBACP1B,aAAaO;YACf;WAECO;IAGP;AAGN,EAAC"}
@@ -50,10 +50,10 @@ export const DeleteDocument = (props)=>{
50
50
  if (res.status < 400) {
51
51
  setDeleting(false);
52
52
  toggleModal(modalSlug);
53
- toast.success(json.message || t('general:titleDeleted', {
53
+ toast.success(t('general:titleDeleted', {
54
54
  label: getTranslation(singularLabel, i18n),
55
55
  title
56
- }));
56
+ }) || json.message);
57
57
  return router.push(`${admin}/collections/${collectionSlug}`);
58
58
  }
59
59
  toggleModal(modalSlug);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n const { Modal, useModal } = facelessUIImport\n\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n json.message ||\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }),\n )\n\n return router.push(`${admin}/collections/${collectionSlug}`)\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n admin,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","MinimalTemplate","requests","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","Modal","useModal","routes","admin","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","message","label","push","errors","forEach","e","Fragment","onClick","className","slug","h1","p","elements","children","strong","i18nKey","variables","div","buttonStyle","undefined","type"],"mappings":"AAAA;AAGA,YAAYA,sBAAsB,qBAAoB;AACtD,SAASC,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AACpD,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,yBAAwB;AACjD,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,WAAW,QAAQ,0BAAyB;AAGrD,MAAMC,YAAY;AAWlB,OAAO,MAAMC,iBAAkC,CAACC;IAC9C,MAAM,EAAEC,EAAE,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,aAAa,EAAEC,OAAOC,cAAc,EAAE,GAAGN;IAC/E,MAAM,EAAEO,KAAK,EAAEC,QAAQ,EAAE,GAAG1B;IAE5B,MAAM,EACJ2B,QAAQ,EAAEC,KAAK,EAAEC,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGtB;IAEJ,MAAM,EAAEuB,WAAW,EAAE,GAAGxB;IACxB,MAAM,CAACyB,UAAUC,YAAY,GAAG5B,SAAS;IACzC,MAAM,EAAE6B,WAAW,EAAE,GAAGR;IACxB,MAAMS,SAASjC;IACf,MAAM,EAAEkC,IAAI,EAAEC,CAAC,EAAE,GAAG3B;IACpB,MAAM,EAAEa,KAAK,EAAE,GAAGd;IAElB,MAAM6B,gBAAgBd,kBAAkBD,SAASJ;IAEjD,MAAMoB,YAAY,CAAC,OAAO,EAAEpB,GAAG,CAAC;IAEhC,MAAMqB,kBAAkBpC,YAAY;QAClC6B,YAAY;QACZ3B,MAAMmC,KAAK,CAACJ,EAAE,uBAAuB;YAAEd;QAAM;IAC/C,GAAG;QAACc;QAAGd;KAAM;IAEb,MAAMmB,eAAetC,YAAY;QAC/B6B,YAAY;QACZF,YAAY;QACZ,IAAI;YACF,MAAMnB,SACH+B,MAAM,CAAC,CAAC,EAAEb,UAAU,EAAED,IAAI,CAAC,EAAER,eAAe,CAAC,EAAEF,GAAG,CAAC,EAAE;gBACpDyB,SAAS;oBACP,mBAAmBR,KAAKS,QAAQ;oBAChC,gBAAgB;gBAClB;YACF,GACCC,IAAI,CAAC,OAAOC;gBACX,IAAI;oBACF,MAAMC,OAAO,MAAMD,IAAIC,IAAI;oBAE3B,IAAID,IAAIE,MAAM,GAAG,KAAK;wBACpBhB,YAAY;wBACZC,YAAYK;wBACZjC,MAAM4C,OAAO,CACXF,KAAKG,OAAO,IACVd,EAAE,wBAAwB;4BAAEe,OAAOnD,eAAeqB,eAAec;4BAAOb;wBAAM;wBAGlF,OAAOY,OAAOkB,IAAI,CAAC,CAAC,EAAEzB,MAAM,aAAa,EAAEP,eAAe,CAAC;oBAC7D;oBACAa,YAAYK;oBACZ,IAAIS,KAAKM,MAAM,EAAE;wBACfN,KAAKM,MAAM,CAACC,OAAO,CAAC,CAACd,QAAUnC,MAAMmC,KAAK,CAACA,MAAMU,OAAO;oBAC1D,OAAO;wBACLX;oBACF;oBACA,OAAO;gBACT,EAAE,OAAOgB,GAAG;oBACV,OAAOhB;gBACT;YACF;QACJ,EAAE,OAAOgB,GAAG;YACVhB;QACF;IACF,GAAG;QACDT;QACAD;QACAD;QACAR;QACAF;QACAe;QACAK;QACAF;QACAf;QACAc;QACAb;QACAY;QACAP;QACAY;KACD;IAED,IAAIrB,IAAI;QACN,qBACE,oBAAChB,MAAMsD,QAAQ,sBACb,oBAAC3C,UAAUD,MAAM;YACfM,IAAIC;YACJsC,SAAS;gBACPzB,YAAY;gBACZC,YAAYK;YACd;WAECF,EAAE,kCAEL,oBAACZ;YAAMkC,WAAW3C;YAAW4C,MAAMrB;yBACjC,oBAAC5B;YAAgBgD,WAAW,CAAC,EAAE3C,UAAU,UAAU,CAAC;yBAClD,oBAAC6C,YAAIxB,EAAE,2CACP,oBAACyB,yBACC,oBAAC/C;YACCgD,UAAU;gBACR,KAAK,CAAC,EAAEC,QAAQ,EAAE,iBAAK,oBAACC,gBAAQD;YAClC;YACAE,SAAQ;YACR7B,GAAGA;YACH8B,WAAW;gBACTf,OAAOnD,eAAeqB,eAAec;gBACrCb,OAAOe;YACT;2BAGJ,oBAAC8B;YAAIT,WAAW,CAAC,EAAE3C,UAAU,SAAS,CAAC;yBACrC,oBAACH;YACCwD,aAAY;YACZlD,IAAG;YACHuC,SAAS1B,WAAWsC,YAAY,IAAMpC,YAAYK;YAClDgC,MAAK;WAEJlC,EAAE,kCAEL,oBAACxB;YAAOM,IAAG;YAAiBuC,SAAS1B,WAAWsC,YAAY5B;WACzDV,WAAWK,EAAE,sBAAsBA,EAAE;IAOpD;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n const { Modal, useModal } = facelessUIImport\n\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(`${admin}/collections/${collectionSlug}`)\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n admin,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","MinimalTemplate","requests","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","Modal","useModal","routes","admin","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","errors","forEach","e","Fragment","onClick","className","slug","h1","p","elements","children","strong","i18nKey","variables","div","buttonStyle","undefined","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAgBvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CA8MA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAgBvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CA+LA,CAAA"}
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ import { useComponentMap } from '@payloadcms/ui/providers/ComponentMap';
2
3
  import React, { Fragment } from 'react';
3
4
  import { useConfig } from '../../providers/Config/index.js';
4
5
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -9,6 +10,7 @@ import { DuplicateDocument } from '../DuplicateDocument/index.js';
9
10
  import { Gutter } from '../Gutter/index.js';
10
11
  import { PopupList } from '../Popup/index.js';
11
12
  import { Popup } from '../Popup/index.js';
13
+ import { PreviewButton } from '../PreviewButton/index.js';
12
14
  import { Publish } from '../Publish/index.js';
13
15
  import { Save } from '../Save/index.js';
14
16
  import { SaveDraft } from '../SaveDraft/index.js';
@@ -18,8 +20,13 @@ export const DocumentControls = (props)=>{
18
20
  const { id, slug, data, disableActions, hasSavePermission, isAccountView, isEditing, permissions } = props;
19
21
  const { i18n } = useTranslation();
20
22
  const config = useConfig();
23
+ const { getComponentMap } = useComponentMap();
21
24
  const collectionConfig = config.collections.find((coll)=>coll.slug === slug);
22
25
  const globalConfig = config.globals.find((global)=>global.slug === slug);
26
+ const componentMap = getComponentMap({
27
+ collectionSlug: collectionConfig?.slug,
28
+ globalSlug: globalConfig?.slug
29
+ });
23
30
  const { admin: { dateFormat }, routes: { admin: adminRoute } } = config;
24
31
  const hasCreatePermission = permissions && 'create' in permissions && permissions.create?.permission;
25
32
  const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete?.permission;
@@ -74,12 +81,14 @@ export const DocumentControls = (props)=>{
74
81
  className: `${baseClass}__controls-wrapper`
75
82
  }, /*#__PURE__*/ React.createElement("div", {
76
83
  className: `${baseClass}__controls`
77
- }, hasSavePermission && /*#__PURE__*/ React.createElement(React.Fragment, null, collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? /*#__PURE__*/ React.createElement(React.Fragment, null, (collectionConfig?.versions?.drafts && !collectionConfig?.versions?.drafts?.autosave || globalConfig?.versions?.drafts && !globalConfig?.versions?.drafts?.autosave) && /*#__PURE__*/ React.createElement(SaveDraft, {
78
- CustomComponent: collectionConfig?.admin?.components?.edit?.SaveDraftButton || globalConfig?.admin?.components?.elements?.SaveDraftButton
84
+ }, componentMap?.isPreviewEnabled && /*#__PURE__*/ React.createElement(PreviewButton, {
85
+ CustomComponent: componentMap.PreviewButton
86
+ }), hasSavePermission && /*#__PURE__*/ React.createElement(React.Fragment, null, collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? /*#__PURE__*/ React.createElement(React.Fragment, null, (collectionConfig?.versions?.drafts && !collectionConfig?.versions?.drafts?.autosave || globalConfig?.versions?.drafts && !globalConfig?.versions?.drafts?.autosave) && /*#__PURE__*/ React.createElement(SaveDraft, {
87
+ CustomComponent: componentMap.SaveDraftButton
79
88
  }), /*#__PURE__*/ React.createElement(Publish, {
80
- CustomComponent: collectionConfig?.admin?.components?.edit?.PublishButton || globalConfig?.admin?.components?.elements?.PublishButton
89
+ CustomComponent: componentMap.PublishButton
81
90
  })) : /*#__PURE__*/ React.createElement(Save, {
82
- CustomComponent: collectionConfig?.admin?.components?.edit?.SaveButton || globalConfig?.admin?.components?.elements?.SaveButton
91
+ CustomComponent: componentMap.SaveButton
83
92
  }))), showDotMenu && /*#__PURE__*/ React.createElement(Popup, {
84
93
  button: /*#__PURE__*/ React.createElement("div", {
85
94
  className: `${baseClass}__dots`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission } from 'payload/auth'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport React, { Fragment } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Popup } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { Publish } from '../Publish/index.js'\nimport { Save } from '../Save/index.js'\nimport { SaveDraft } from '../SaveDraft/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label:\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : 'document',\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.updatedAt ? formatDate(data?.updatedAt, dateFormat, i18n.language) : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && (\n <p className={`${baseClass}__value`}>\n {formatDate(data.updatedAt, dateFormat, i18n.language)}\n </p>\n )}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.createdAt ? formatDate(data?.createdAt, dateFormat, i18n.language) : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && (\n <p className={`${baseClass}__value`}>\n {formatDate(data?.createdAt, dateFormat, i18n.language)}\n </p>\n )}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {/* {(collectionConfig?.admin?.preview || globalConfig?.admin?.preview) && (\n <PreviewButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n }\n generatePreviewURL={collectionConfig?.admin?.preview || globalConfig?.admin?.preview}\n />\n )} */}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraft\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n }\n />\n )}\n <Publish\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n }\n />\n </React.Fragment>\n ) : (\n <Save\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n }\n />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={`${adminRoute}/collections/${collectionConfig?.slug}/create`}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig?.admin?.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["React","Fragment","useConfig","useTranslation","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","PopupList","Popup","Publish","Save","SaveDraft","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","collectionConfig","collections","find","coll","globalConfig","globals","global","admin","dateFormat","routes","adminRoute","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","className","div","ul","li","p","t","label","labels","singular","versions","drafts","filter","join","autosave","collection","publishedDocUpdatedAt","createdAt","timestamps","title","updatedAt","language","CustomComponent","components","edit","SaveDraftButton","elements","PublishButton","SaveButton","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","disableDuplicate","toString","singularLabel","buttonId","collectionSlug","useAsTitle"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission } from 'payload/auth'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport React, { Fragment } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Popup } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { Publish } from '../Publish/index.js'\nimport { Save } from '../Save/index.js'\nimport { SaveDraft } from '../SaveDraft/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n const { getComponentMap } = useComponentMap()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label:\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : 'document',\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.updatedAt ? formatDate(data?.updatedAt, dateFormat, i18n.language) : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && (\n <p className={`${baseClass}__value`}>\n {formatDate(data.updatedAt, dateFormat, i18n.language)}\n </p>\n )}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.createdAt ? formatDate(data?.createdAt, dateFormat, i18n.language) : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && (\n <p className={`${baseClass}__value`}>\n {formatDate(data?.createdAt, dateFormat, i18n.language)}\n </p>\n )}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {componentMap?.isPreviewEnabled && (\n <PreviewButton CustomComponent={componentMap.PreviewButton} />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraft CustomComponent={componentMap.SaveDraftButton} />\n )}\n <Publish CustomComponent={componentMap.PublishButton} />\n </React.Fragment>\n ) : (\n <Save CustomComponent={componentMap.SaveButton} />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={`${adminRoute}/collections/${collectionConfig?.slug}/create`}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig?.admin?.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["useComponentMap","React","Fragment","useConfig","useTranslation","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","PopupList","Popup","PreviewButton","Publish","Save","SaveDraft","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getComponentMap","collectionConfig","collections","find","coll","globalConfig","globals","global","componentMap","collectionSlug","globalSlug","admin","dateFormat","routes","adminRoute","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","className","div","ul","li","p","t","label","labels","singular","versions","drafts","filter","join","autosave","collection","publishedDocUpdatedAt","createdAt","timestamps","title","updatedAt","language","isPreviewEnabled","CustomComponent","SaveDraftButton","PublishButton","SaveButton","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"mappings":"AAAA;AAIA,SAASA,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,QAAQ,QAAQ,uBAAsB;AAC/C,SAASC,cAAc,QAAQ,6BAA4B;AAC3D,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,KAAK,QAAQ,oBAAmB;AACzC,SAASC,aAAa,QAAQ,4BAA2B;AACzD,SAASC,OAAO,QAAQ,sBAAqB;AAC7C,SAASC,IAAI,QAAQ,mBAAkB;AACvC,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,MAAM,QAAQ,qBAAoB;AAG3C,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAUR,CAACC;IACJ,MAAM,EACJC,EAAE,EACFC,IAAI,EACJC,IAAI,EACJC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,EACbC,SAAS,EACTC,WAAW,EACZ,GAAGR;IAEJ,MAAM,EAAES,IAAI,EAAE,GAAGxB;IAEjB,MAAMyB,SAAS1B;IACf,MAAM,EAAE2B,eAAe,EAAE,GAAG9B;IAE5B,MAAM+B,mBAAmBF,OAAOG,WAAW,CAACC,IAAI,CAAC,CAACC,OAASA,KAAKb,IAAI,KAAKA;IACzE,MAAMc,eAAeN,OAAOO,OAAO,CAACH,IAAI,CAAC,CAACI,SAAWA,OAAOhB,IAAI,KAAKA;IAErE,MAAMiB,eAAeR,gBAAgB;QACnCS,gBAAgBR,kBAAkBV;QAClCmB,YAAYL,cAAcd;IAC5B;IAEA,MAAM,EACJoB,OAAO,EAAEC,UAAU,EAAE,EACrBC,QAAQ,EAAEF,OAAOG,UAAU,EAAE,EAC9B,GAAGf;IAEJ,MAAMgB,sBACJlB,eAAe,YAAYA,eAAeA,YAAYmB,MAAM,EAAEC;IAEhE,MAAMC,sBACJrB,eAAe,YAAYA,eAAeA,YAAYsB,MAAM,EAAEF;IAEhE,MAAMG,cAAcC,QAClBpB,oBAAoBX,MAAM,CAACG,kBAAmBsB,CAAAA,uBAAuBG,mBAAkB;IAGzF,qBACE,oBAACvC;QAAO2C,WAAWnC;qBACjB,oBAACoC;QAAID,WAAW,CAAC,EAAEnC,UAAU,SAAS,CAAC;qBACrC,oBAACoC;QAAID,WAAW,CAAC,EAAEnC,UAAU,SAAS,CAAC;qBACrC,oBAACqC;QAAGF,WAAW,CAAC,EAAEnC,UAAU,MAAM,CAAC;OAChCc,oBAAoB,CAACL,aAAa,CAACD,+BAClC,oBAAC8B;QAAGH,WAAW,CAAC,EAAEnC,UAAU,WAAW,CAAC;qBACtC,oBAACuC;QAAEJ,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;OAChCW,KAAK6B,CAAC,CAAC,4BAA4B;QAClCC,OACE,OAAO3B,kBAAkB4B,QAAQC,aAAa,WAC1C7B,iBAAiB4B,MAAM,CAACC,QAAQ,GAChC;IACR,MAIL,AAAC7B,CAAAA,kBAAkB8B,UAAUC,UAAU3B,cAAc0B,UAAUC,MAAK,mBACnE,oBAAC5D,gBACE,AAACiC,CAAAA,gBAAiBJ,oBAAoBL,SAAS,mBAC9C,oBAAC6B;QACCH,WAAW;YAAC,CAAC,EAAEnC,UAAU,QAAQ,CAAC;YAAE,CAAC,EAAEA,UAAU,WAAW,CAAC;SAAC,CAC3D8C,MAAM,CAACZ,SACPa,IAAI,CAAC;qBAER,oBAAChD,gBAGJ,AAAC,CAAA,AAACe,kBAAkB8B,UAAUC,UAC7B/B,kBAAkB8B,UAAUC,QAAQG,YACnC9B,cAAc0B,UAAUC,UAAU3B,cAAc0B,UAAUC,QAAQG,QAAQ,KAC3EzC,mCACE,oBAAC+B;QAAGH,WAAW,CAAC,EAAEnC,UAAU,WAAW,CAAC;qBACtC,oBAACX;QACC4D,YAAYnC;QACZM,QAAQF;QACRf,IAAIA;QACJ+C,uBAAuB7C,MAAM8C;UAMxCrC,kBAAkBsC,cAAe3C,CAAAA,aAAaD,aAAY,mBACzD,oBAACvB,8BACC,oBAACqD;QACCH,WAAW;YAAC,CAAC,EAAEnC,UAAU,WAAW,CAAC;YAAE,CAAC,EAAEA,UAAU,YAAY,CAAC;SAAC,CAC/D8C,MAAM,CAACZ,SACPa,IAAI,CAAC;QACRM,OACEhD,MAAMiD,YAAYlE,WAAWiB,MAAMiD,WAAW7B,YAAYd,KAAK4C,QAAQ,IAAI;qBAG7E,oBAAChB;QAAEJ,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;OAAGW,KAAK6B,CAAC,CAAC,yBAAwB,OACpEnC,MAAMiD,2BACL,oBAACf;QAAEJ,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;OAChCZ,WAAWiB,KAAKiD,SAAS,EAAE7B,YAAYd,KAAK4C,QAAQ,mBAI3D,oBAACjB;QACCH,WAAW;YAAC,CAAC,EAAEnC,UAAU,WAAW,CAAC;YAAE,CAAC,EAAEA,UAAU,YAAY,CAAC;SAAC,CAC/D8C,MAAM,CAACZ,SACPa,IAAI,CAAC;QACRM,OACEhD,MAAM8C,YAAY/D,WAAWiB,MAAM8C,WAAW1B,YAAYd,KAAK4C,QAAQ,IAAI;qBAG7E,oBAAChB;QAAEJ,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;OAAGW,KAAK6B,CAAC,CAAC,oBAAmB,OAC/DnC,MAAM8C,2BACL,oBAACZ;QAAEJ,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;OAChCZ,WAAWiB,MAAM8C,WAAW1B,YAAYd,KAAK4C,QAAQ,sBAQpE,oBAACnB;QAAID,WAAW,CAAC,EAAEnC,UAAU,kBAAkB,CAAC;qBAC9C,oBAACoC;QAAID,WAAW,CAAC,EAAEnC,UAAU,UAAU,CAAC;OACrCqB,cAAcmC,kCACb,oBAAC7D;QAAc8D,iBAAiBpC,aAAa1B,aAAa;QAE3DY,mCACC,oBAACvB,MAAMC,QAAQ,QACZ6B,kBAAkB8B,UAAUC,UAAU3B,cAAc0B,UAAUC,uBAC7D,oBAAC7D,MAAMC,QAAQ,QACZ,AAAC,CAAA,AAAC6B,kBAAkB8B,UAAUC,UAC7B,CAAC/B,kBAAkB8B,UAAUC,QAAQG,YACpC9B,cAAc0B,UAAUC,UACvB,CAAC3B,cAAc0B,UAAUC,QAAQG,QAAQ,mBAC3C,oBAAClD;QAAU2D,iBAAiBpC,aAAaqC,eAAe;sBAE1D,oBAAC9D;QAAQ6D,iBAAiBpC,aAAasC,aAAa;wBAGtD,oBAAC9D;QAAK4D,iBAAiBpC,aAAauC,UAAU;UAKrD3B,6BACC,oBAACvC;QACCmE,sBACE,oBAACzB;YAAID,WAAW,CAAC,EAAEnC,UAAU,MAAM,CAAC;yBAClC,oBAACoC,4BACD,oBAACA,4BACD,oBAACA;QAGLD,WAAW,CAAC,EAAEnC,UAAU,OAAO,CAAC;QAChC8D,iBAAgB;QAChBC,MAAK;QACLC,eAAc;qBAEd,oBAACvE,UAAUwE,WAAW,QACnBrC,qCACC,oBAAC5C,MAAMC,QAAQ,sBACb,oBAACQ,UAAUyE,MAAM;QACfC,MAAM,CAAC,EAAExC,WAAW,aAAa,EAAEb,kBAAkBV,KAAK,OAAO,CAAC;QAClED,IAAG;OAEFQ,KAAK6B,CAAC,CAAC,uBAET,CAAC1B,kBAAkBU,OAAO4C,oBAAoB3D,2BAC7C,oBAAClB;QACCY,IAAIA,GAAGkE,QAAQ;QACfC,eAAexD,kBAAkB4B,QAAQC;QACzCvC,MAAMU,kBAAkBV;SAK/B2B,qCACC,oBAACzC;QACCiF,UAAS;QACTjD,gBAAgBR,kBAAkBV;QAClCD,IAAIA,GAAGkE,QAAQ;QACfC,eAAexD,kBAAkB4B,QAAQC;QACzC6B,YAAY1D,kBAAkBU,OAAOgD;0BAQnD,oBAACpC;QAAID,WAAW,CAAC,EAAEnC,UAAU,SAAS,CAAC;;AAG7C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAgLrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoB/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAerD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuG/D,CAAA"}
@@ -1,122 +1,66 @@
1
1
  'use client';
2
2
  import * as facelessUIImport from '@faceless-ui/modal';
3
3
  import queryString from 'qs';
4
- import React, { useCallback, useEffect, useRef, useState } from 'react';
4
+ import React, { useCallback, useEffect, useState } from 'react';
5
5
  import { toast } from 'react-toastify';
6
6
  import { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js';
7
- import usePayloadAPI from '../../hooks/usePayloadAPI.js';
8
7
  import { X } from '../../icons/X/index.js';
9
8
  import { useComponentMap } from '../../providers/ComponentMap/index.js';
10
9
  import { useConfig } from '../../providers/Config/index.js';
11
- import { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js';
10
+ import { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js';
12
11
  import { useFormQueryParams } from '../../providers/FormQueryParams/index.js';
13
12
  import { useLocale } from '../../providers/Locale/index.js';
14
- import { usePreferences } from '../../providers/Preferences/index.js';
15
13
  import { useTranslation } from '../../providers/Translation/index.js';
16
- import { formatDocTitle } from '../../utilities/formatDocTitle.js';
17
- import { getFormState } from '../../utilities/getFormState.js';
18
14
  import { Gutter } from '../Gutter/index.js';
19
15
  import { IDLabel } from '../IDLabel/index.js';
20
- import { LoadingOverlay } from '../Loading/index.js';
21
16
  import { RenderTitle } from '../RenderTitle/index.js';
22
17
  import { baseClass } from './index.js';
23
- const Content = ({ id, Header, collectionSlug, drawerSlug, initialData, onSave })=>{
18
+ export const DocumentDrawerContent = ({ id, Header, collectionSlug, drawerSlug, onSave: onSaveFromProps })=>{
24
19
  const { useModal } = facelessUIImport;
25
20
  const config = useConfig();
26
21
  const { routes: { api: apiRoute }, serverURL } = config;
27
22
  const { closeModal, modalState, toggleModal } = useModal();
28
23
  const locale = useLocale();
29
- const [initialState, setInitialState] = useState();
30
- const { i18n, t } = useTranslation();
31
- const hasInitializedState = useRef(false);
24
+ const { t } = useTranslation();
25
+ const [createdID, setCreatedID] = useState();
32
26
  const [isOpen, setIsOpen] = useState(false);
33
27
  const [collectionConfig] = useRelatedCollections(collectionSlug);
34
28
  const { formQueryParams } = useFormQueryParams();
35
29
  const formattedQueryParams = queryString.stringify(formQueryParams);
36
- const { getPreference } = usePreferences();
37
30
  const { componentMap } = useComponentMap();
38
31
  const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug];
39
- // no need to an additional requests when creating new documents
40
- const initialID = useRef(id);
41
- const [{ data, isError, isLoading: isLoadingDocument }] = usePayloadAPI(initialID.current ? `${serverURL}${apiRoute}/${collectionSlug}/${initialID.current}` : null, {
42
- initialData,
43
- initialParams: {
44
- depth: 0,
45
- draft: 'true',
46
- 'fallback-locale': 'null'
47
- }
48
- });
32
+ const isEditing = Boolean(id);
33
+ const apiURL = id ? `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}` : null;
34
+ const action = `${serverURL}${apiRoute}/${collectionSlug}${isEditing ? `/${id}` : ''}?${formattedQueryParams}`;
49
35
  useEffect(()=>{
50
36
  setIsOpen(Boolean(modalState[drawerSlug]?.isOpen));
51
37
  }, [
52
38
  modalState,
53
39
  drawerSlug
54
40
  ]);
55
- useEffect(()=>{
56
- if (isOpen && !isLoadingDocument && isError) {
41
+ const onLoadError = React.useCallback((data)=>{
42
+ if (isOpen) {
57
43
  closeModal(drawerSlug);
58
44
  toast.error(data.errors?.[0].message || t('error:unspecific'));
59
45
  }
60
46
  }, [
61
- isError,
62
- t,
63
- isOpen,
64
- data,
65
- drawerSlug,
66
47
  closeModal,
67
- isLoadingDocument
48
+ drawerSlug,
49
+ isOpen,
50
+ t
68
51
  ]);
69
- const isEditing = Boolean(id);
70
- const apiURL = id ? `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}` : null;
71
- const action = `${serverURL}${apiRoute}/${collectionSlug}${isEditing ? `/${id}` : ''}?${formattedQueryParams}`;
72
- // const hasSavePermission =
73
- // (isEditing && docPermissions?.update?.permission) ||
74
- // (!isEditing && (docPermissions as CollectionPermission)?.create?.permission)
75
- useEffect(()=>{
76
- if (!hasInitializedState.current && (!initialID.current || initialID.current && data)) {
77
- const getInitialState = async ()=>{
78
- let docPreferences = {
79
- fields: {}
80
- };
81
- if (id) {
82
- docPreferences = await getPreference(`collection-${collectionSlug}-${id}`);
83
- }
84
- const result = await getFormState({
85
- apiRoute,
86
- body: {
87
- id,
88
- collectionSlug,
89
- data: data || {},
90
- docPreferences,
91
- operation: isEditing ? 'update' : 'create',
92
- schemaPath: collectionSlug
93
- },
94
- serverURL
95
- });
96
- setInitialState(result);
97
- hasInitializedState.current = true;
98
- };
99
- void getInitialState();
52
+ const onSave = useCallback((args)=>{
53
+ setCreatedID(args.doc.id);
54
+ if (typeof onSaveFromProps === 'function') {
55
+ void onSaveFromProps({
56
+ ...args,
57
+ collectionConfig
58
+ });
100
59
  }
101
60
  }, [
102
- apiRoute,
103
- data,
104
- isEditing,
105
- collectionSlug,
106
- serverURL,
107
- id,
108
- getPreference
61
+ onSaveFromProps,
62
+ collectionConfig
109
63
  ]);
110
- if (isError) return null;
111
- if (!initialState || isLoadingDocument) {
112
- return /*#__PURE__*/ React.createElement(LoadingOverlay, null);
113
- }
114
- const title = formatDocTitle({
115
- collectionConfig,
116
- data,
117
- dateFormat: config.admin.dateFormat,
118
- i18n
119
- });
120
64
  return /*#__PURE__*/ React.createElement(DocumentInfoProvider, {
121
65
  BeforeDocument: /*#__PURE__*/ React.createElement(Gutter, {
122
66
  className: `${baseClass}__header`
@@ -131,9 +75,7 @@ const Content = ({ id, Header, collectionSlug, drawerSlug, initialData, onSave }
131
75
  className: `${baseClass}__header-close`,
132
76
  onClick: ()=>toggleModal(drawerSlug),
133
77
  type: "button"
134
- }, /*#__PURE__*/ React.createElement(X, null))), id && id !== title ? /*#__PURE__*/ React.createElement(IDLabel, {
135
- id: id.toString()
136
- }) : null),
78
+ }, /*#__PURE__*/ React.createElement(X, null))), /*#__PURE__*/ React.createElement(DocumentTitle, null)),
137
79
  action: action,
138
80
  apiURL: apiURL,
139
81
  collectionSlug: collectionConfig.slug,
@@ -145,40 +87,17 @@ const Content = ({ id, Header, collectionSlug, drawerSlug, initialData, onSave }
145
87
  // Same reason as above. We need to fully-fetch the docPreferences from the server. This is done in DocumentInfoProvider if we set it to null here.
146
88
  hasSavePermission: null,
147
89
  // isLoading,
148
- id: id,
149
- initialData: data,
150
- initialState: initialState,
90
+ id: id || createdID,
151
91
  isEditing: isEditing,
152
- onSave: onSave,
153
- title: title
92
+ onLoadError: onLoadError,
93
+ onSave: onSave
154
94
  }, Edit);
155
95
  };
156
- // First provide the document context using `DocumentInfoProvider`
157
- // this is so we can utilize the `useDocumentInfo` hook in the `Content` component
158
- // this drawer is used for both creating and editing documents
159
- // this means that the `id` may be unknown until the document is created
160
- export const DocumentDrawerContent = (props)=>{
161
- const { id: idFromProps, collectionSlug, onSave: onSaveFromProps } = props;
162
- const [collectionConfig] = useRelatedCollections(collectionSlug);
163
- const [doc, setDoc] = useState();
164
- const onSave = useCallback((args)=>{
165
- setDoc(args.doc);
166
- if (typeof onSaveFromProps === 'function') {
167
- void onSaveFromProps({
168
- ...args,
169
- collectionConfig
170
- });
171
- }
172
- }, [
173
- onSaveFromProps,
174
- collectionConfig
175
- ]);
176
- return /*#__PURE__*/ React.createElement(Content, {
177
- ...props,
178
- id: idFromProps || doc?.id,
179
- initialData: doc,
180
- onSave: onSave
181
- });
96
+ const DocumentTitle = ()=>{
97
+ const { id, title } = useDocumentInfo();
98
+ return id && id !== title ? /*#__PURE__*/ React.createElement(IDLabel, {
99
+ id: id.toString()
100
+ }) : null;
182
101
  };
183
102
 
184
103
  //# sourceMappingURL=DrawerContent.js.map