@payloadcms/ui 3.69.0-internal.424436e → 3.69.0

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 (241) hide show
  1. package/dist/elements/AppHeader/index.js +1 -2
  2. package/dist/elements/AppHeader/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.scss +0 -1
  4. package/dist/elements/ArrayAction/index.d.ts +6 -6
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +8 -8
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +20 -5
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +10 -6
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  15. package/dist/elements/CopyLocaleData/index.js +36 -39
  16. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  17. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  18. package/dist/elements/DefaultListViewTabs/index.js +1 -2
  19. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  20. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  21. package/dist/elements/DeleteDocument/index.js +9 -7
  22. package/dist/elements/DeleteDocument/index.js.map +1 -1
  23. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  24. package/dist/elements/DeleteMany/index.js +19 -16
  25. package/dist/elements/DeleteMany/index.js.map +1 -1
  26. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentControls/index.js +2 -4
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  30. package/dist/elements/DuplicateDocument/index.js +4 -6
  31. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +8 -12
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -1
  36. package/dist/elements/FolderView/BrowseByFolderButton/index.js +2 -4
  37. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  38. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Cell/index.client.js +9 -2
  40. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  41. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  42. package/dist/elements/FolderView/CurrentFolderActions/index.js +7 -4
  43. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  44. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +1 -1
  45. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
  46. package/dist/elements/FolderView/MoveDocToFolder/index.js +5 -1
  47. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  48. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  49. package/dist/elements/IDLabel/index.js +11 -14
  50. package/dist/elements/IDLabel/index.js.map +1 -1
  51. package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts +8 -0
  52. package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts.map +1 -0
  53. package/dist/elements/ItemsDrawer/ItemSearch/index.js +56 -0
  54. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -0
  55. package/dist/elements/ItemsDrawer/ItemSearch/index.scss +38 -0
  56. package/dist/elements/ItemsDrawer/index.d.ts +15 -0
  57. package/dist/elements/ItemsDrawer/index.d.ts.map +1 -0
  58. package/dist/elements/ItemsDrawer/index.js +195 -0
  59. package/dist/elements/ItemsDrawer/index.js.map +1 -0
  60. package/dist/elements/ItemsDrawer/index.scss +102 -0
  61. package/dist/elements/Link/index.d.ts.map +1 -1
  62. package/dist/elements/Link/index.js +5 -3
  63. package/dist/elements/Link/index.js.map +1 -1
  64. package/dist/elements/ListControls/index.d.ts.map +1 -1
  65. package/dist/elements/ListControls/index.js +6 -4
  66. package/dist/elements/ListControls/index.js.map +1 -1
  67. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  68. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +9 -2
  69. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  70. package/dist/elements/Logout/index.d.ts.map +1 -1
  71. package/dist/elements/Logout/index.js +8 -11
  72. package/dist/elements/Logout/index.js.map +1 -1
  73. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  74. package/dist/elements/PermanentlyDeleteButton/index.js +19 -14
  75. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  76. package/dist/elements/Popup/PopupButtonList/index.scss +1 -0
  77. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -1
  78. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  79. package/dist/elements/Popup/PopupTrigger/index.js +24 -92
  80. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  81. package/dist/elements/Popup/index.d.ts +32 -1
  82. package/dist/elements/Popup/index.d.ts.map +1 -1
  83. package/dist/elements/Popup/index.js +249 -122
  84. package/dist/elements/Popup/index.js.map +1 -1
  85. package/dist/elements/Popup/index.scss +49 -231
  86. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
  88. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  89. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  90. package/dist/elements/PublishButton/index.js +14 -4
  91. package/dist/elements/PublishButton/index.js.map +1 -1
  92. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  93. package/dist/elements/PublishMany/DrawerContent.js +8 -5
  94. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  95. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  96. package/dist/elements/QueryPresets/QueryPresetBar/index.js +7 -9
  97. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  98. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  99. package/dist/elements/RestoreButton/index.js +19 -14
  100. package/dist/elements/RestoreButton/index.js.map +1 -1
  101. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  102. package/dist/elements/RestoreMany/index.js +17 -14
  103. package/dist/elements/RestoreMany/index.js.map +1 -1
  104. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  105. package/dist/elements/SaveDraftButton/index.js +11 -5
  106. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  107. package/dist/elements/Status/index.d.ts.map +1 -1
  108. package/dist/elements/Status/index.js +11 -5
  109. package/dist/elements/Status/index.js.map +1 -1
  110. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  111. package/dist/elements/StayLoggedIn/index.js +17 -20
  112. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  113. package/dist/elements/StepNav/context.d.ts.map +1 -1
  114. package/dist/elements/StepNav/context.js +9 -1
  115. package/dist/elements/StepNav/context.js.map +1 -1
  116. package/dist/elements/StepNav/index.scss +0 -1
  117. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +39 -41
  119. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +9 -12
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  124. package/dist/elements/Table/OrderableTable.js +5 -1
  125. package/dist/elements/Table/OrderableTable.js.map +1 -1
  126. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  127. package/dist/elements/Table/RelationshipProvider/index.js +25 -24
  128. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  129. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  130. package/dist/elements/UnpublishMany/DrawerContent.js +8 -5
  131. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  132. package/dist/elements/Upload/index.d.ts.map +1 -1
  133. package/dist/elements/Upload/index.js +7 -5
  134. package/dist/elements/Upload/index.js.map +1 -1
  135. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  136. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +14 -8
  137. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  138. package/dist/elements/withMergedProps/index.d.ts +1 -1
  139. package/dist/elements/withMergedProps/index.js +1 -1
  140. package/dist/elements/withMergedProps/index.js.map +1 -1
  141. package/dist/exports/client/index.d.ts +1 -2
  142. package/dist/exports/client/index.d.ts.map +1 -1
  143. package/dist/exports/client/index.js +12 -12
  144. package/dist/exports/client/index.js.map +4 -4
  145. package/dist/exports/rsc/index.d.ts +1 -0
  146. package/dist/exports/rsc/index.d.ts.map +1 -1
  147. package/dist/exports/rsc/index.js +1 -0
  148. package/dist/exports/rsc/index.js.map +1 -1
  149. package/dist/exports/shared/index.d.ts +3 -0
  150. package/dist/exports/shared/index.d.ts.map +1 -1
  151. package/dist/exports/shared/index.js +2 -2
  152. package/dist/exports/shared/index.js.map +4 -4
  153. package/dist/fields/Array/ArrayRow.d.ts +7 -18
  154. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  155. package/dist/fields/Array/ArrayRow.js +133 -65
  156. package/dist/fields/Array/ArrayRow.js.map +1 -1
  157. package/dist/fields/Array/index.d.ts.map +1 -1
  158. package/dist/fields/Array/index.js +3 -10
  159. package/dist/fields/Array/index.js.map +1 -1
  160. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  161. package/dist/fields/Relationship/Input.js +9 -3
  162. package/dist/fields/Relationship/Input.js.map +1 -1
  163. package/dist/fields/Upload/Input.d.ts.map +1 -1
  164. package/dist/fields/Upload/Input.js +7 -3
  165. package/dist/fields/Upload/Input.js.map +1 -1
  166. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +8 -1
  167. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
  168. package/dist/graphics/Account/index.d.ts.map +1 -1
  169. package/dist/graphics/Account/index.js +2 -4
  170. package/dist/graphics/Account/index.js.map +1 -1
  171. package/dist/providers/Auth/index.d.ts.map +1 -1
  172. package/dist/providers/Auth/index.js +23 -26
  173. package/dist/providers/Auth/index.js.map +1 -1
  174. package/dist/providers/DocumentInfo/index.d.ts +1 -1
  175. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  176. package/dist/providers/DocumentInfo/index.js +16 -15
  177. package/dist/providers/DocumentInfo/index.js.map +1 -1
  178. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
  179. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  180. package/dist/providers/DocumentInfo/useGetDocPermissions.js +16 -6
  181. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  182. package/dist/providers/Folders/index.d.ts.map +1 -1
  183. package/dist/providers/Folders/index.js +14 -11
  184. package/dist/providers/Folders/index.js.map +1 -1
  185. package/dist/providers/Locale/index.d.ts.map +1 -1
  186. package/dist/providers/Locale/index.js +45 -34
  187. package/dist/providers/Locale/index.js.map +1 -1
  188. package/dist/providers/Preferences/index.d.ts.map +1 -1
  189. package/dist/providers/Preferences/index.js +16 -7
  190. package/dist/providers/Preferences/index.js.map +1 -1
  191. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  192. package/dist/providers/RouteTransition/index.js +6 -1
  193. package/dist/providers/RouteTransition/index.js.map +1 -1
  194. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  195. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -2
  196. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  197. package/dist/scss/app.scss +14 -1
  198. package/dist/styles.css +1 -1
  199. package/dist/utilities/getGlobalData.d.ts +11 -0
  200. package/dist/utilities/getGlobalData.d.ts.map +1 -0
  201. package/dist/utilities/getGlobalData.js +49 -0
  202. package/dist/utilities/getGlobalData.js.map +1 -0
  203. package/dist/utilities/getNavGroups.d.ts +5 -0
  204. package/dist/utilities/getNavGroups.d.ts.map +1 -0
  205. package/dist/utilities/getNavGroups.js +22 -0
  206. package/dist/utilities/getNavGroups.js.map +1 -0
  207. package/dist/utilities/getVisibleEntities.d.ts +5 -0
  208. package/dist/utilities/getVisibleEntities.d.ts.map +1 -0
  209. package/dist/utilities/getVisibleEntities.js +31 -0
  210. package/dist/utilities/getVisibleEntities.js.map +1 -0
  211. package/dist/utilities/groupNavItems.d.ts +3 -0
  212. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  213. package/dist/utilities/groupNavItems.js +3 -0
  214. package/dist/utilities/groupNavItems.js.map +1 -1
  215. package/dist/utilities/handleBackToDashboard.js +1 -1
  216. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  217. package/dist/utilities/handleGoBack.d.ts.map +1 -1
  218. package/dist/utilities/handleGoBack.js +1 -2
  219. package/dist/utilities/handleGoBack.js.map +1 -1
  220. package/dist/utilities/normalizeRelationshipValue.spec.js +1 -1
  221. package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
  222. package/dist/views/CollectionFolder/index.js +2 -4
  223. package/dist/views/CollectionFolder/index.js.map +1 -1
  224. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  225. package/dist/views/Edit/Auth/index.js +22 -21
  226. package/dist/views/Edit/Auth/index.js.map +1 -1
  227. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  228. package/dist/views/Edit/SetDocumentStepNav/index.js +36 -22
  229. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  230. package/dist/views/Edit/index.d.ts.map +1 -1
  231. package/dist/views/Edit/index.js +2 -3
  232. package/dist/views/Edit/index.js.map +1 -1
  233. package/dist/views/List/index.d.ts.map +1 -1
  234. package/dist/views/List/index.js +1 -2
  235. package/dist/views/List/index.js.map +1 -1
  236. package/dist/widgets/CollectionCards/index.d.ts +5 -0
  237. package/dist/widgets/CollectionCards/index.d.ts.map +1 -0
  238. package/dist/widgets/CollectionCards/index.js +135 -0
  239. package/dist/widgets/CollectionCards/index.js.map +1 -0
  240. package/dist/widgets/CollectionCards/index.scss +70 -0
  241. package/package.json +5 -5
@@ -25,14 +25,13 @@ import './index.scss';
25
25
  const baseClass = 'copy-locale-data';
26
26
  const drawerSlug = 'copy-locale';
27
27
  export const CopyLocaleData = () => {
28
- const $ = _c(36);
28
+ const $ = _c(35);
29
29
  const {
30
30
  config: t0
31
31
  } = useConfig();
32
32
  const {
33
33
  localization,
34
- routes: t1,
35
- serverURL
34
+ routes: t1
36
35
  } = t0;
37
36
  const {
38
37
  admin
@@ -106,7 +105,7 @@ export const CopyLocaleData = () => {
106
105
  }
107
106
  React.useEffect(t4, t5);
108
107
  let t6;
109
- if ($[9] !== admin || $[10] !== collectionSlug || $[11] !== copyDataFromLocale || $[12] !== globalSlug || $[13] !== id || $[14] !== overwriteExisting || $[15] !== router || $[16] !== serverURL || $[17] !== startRouteTransition || $[18] !== toggleModal) {
108
+ if ($[9] !== admin || $[10] !== collectionSlug || $[11] !== copyDataFromLocale || $[12] !== globalSlug || $[13] !== id || $[14] !== overwriteExisting || $[15] !== router || $[16] !== startRouteTransition || $[17] !== toggleModal) {
110
109
  t6 = async t7 => {
111
110
  const {
112
111
  from,
@@ -126,8 +125,7 @@ export const CopyLocaleData = () => {
126
125
  setCopying(false);
127
126
  startRouteTransition(() => router.push(formatAdminURL({
128
127
  adminRoute: admin,
129
- path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,
130
- serverURL
128
+ path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`
131
129
  }) + `?locale=${to}`));
132
130
  toggleModal(drawerSlug);
133
131
  } catch (t8) {
@@ -142,19 +140,18 @@ export const CopyLocaleData = () => {
142
140
  $[13] = id;
143
141
  $[14] = overwriteExisting;
144
142
  $[15] = router;
145
- $[16] = serverURL;
146
- $[17] = startRouteTransition;
147
- $[18] = toggleModal;
148
- $[19] = t6;
143
+ $[16] = startRouteTransition;
144
+ $[17] = toggleModal;
145
+ $[18] = t6;
149
146
  } else {
150
- t6 = $[19];
147
+ t6 = $[18];
151
148
  }
152
149
  const copyLocaleData = t6;
153
150
  if (!id && !globalSlug) {
154
151
  return null;
155
152
  }
156
153
  let t7;
157
- if ($[20] !== modified || $[21] !== t || $[22] !== toggleModal) {
154
+ if ($[19] !== modified || $[20] !== t || $[21] !== toggleModal) {
158
155
  t7 = () => {
159
156
  if (modified) {
160
157
  toast.info(t("general:unsavedChanges"));
@@ -162,25 +159,25 @@ export const CopyLocaleData = () => {
162
159
  toggleModal(drawerSlug);
163
160
  }
164
161
  };
165
- $[20] = modified;
166
- $[21] = t;
167
- $[22] = toggleModal;
168
- $[23] = t7;
162
+ $[19] = modified;
163
+ $[20] = t;
164
+ $[21] = toggleModal;
165
+ $[22] = t7;
169
166
  } else {
170
- t7 = $[23];
167
+ t7 = $[22];
171
168
  }
172
169
  let t8;
173
- if ($[24] !== toggleModal) {
170
+ if ($[23] !== toggleModal) {
174
171
  t8 = () => {
175
172
  toggleModal(drawerSlug);
176
173
  };
177
- $[24] = toggleModal;
178
- $[25] = t8;
174
+ $[23] = toggleModal;
175
+ $[24] = t8;
179
176
  } else {
180
- t8 = $[25];
177
+ t8 = $[24];
181
178
  }
182
179
  let t9;
183
- if ($[26] !== copyLocaleData || $[27] !== copying || $[28] !== fromLocale || $[29] !== t || $[30] !== toLocale) {
180
+ if ($[25] !== copyLocaleData || $[26] !== copying || $[27] !== fromLocale || $[28] !== t || $[29] !== toLocale) {
184
181
  t9 = async () => {
185
182
  if (fromLocale === toLocale) {
186
183
  toast.error(t("localization:cannotCopySameLocale"));
@@ -193,44 +190,44 @@ export const CopyLocaleData = () => {
193
190
  });
194
191
  }
195
192
  };
196
- $[26] = copyLocaleData;
197
- $[27] = copying;
198
- $[28] = fromLocale;
199
- $[29] = t;
200
- $[30] = toLocale;
201
- $[31] = t9;
193
+ $[25] = copyLocaleData;
194
+ $[26] = copying;
195
+ $[27] = fromLocale;
196
+ $[28] = t;
197
+ $[29] = toLocale;
198
+ $[30] = t9;
202
199
  } else {
203
- t9 = $[31];
200
+ t9 = $[30];
204
201
  }
205
202
  let t10;
206
- if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
203
+ if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
207
204
  t10 = selectedOption => {
208
205
  if (selectedOption?.value) {
209
206
  setFromLocale(selectedOption.value);
210
207
  }
211
208
  };
212
- $[32] = t10;
209
+ $[31] = t10;
213
210
  } else {
214
- t10 = $[32];
211
+ t10 = $[31];
215
212
  }
216
213
  let t11;
217
- if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
214
+ if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
218
215
  t11 = selectedOption_0 => {
219
216
  if (selectedOption_0?.value) {
220
217
  setToLocale(selectedOption_0.value);
221
218
  }
222
219
  };
223
- $[33] = t11;
220
+ $[32] = t11;
224
221
  } else {
225
- t11 = $[33];
222
+ t11 = $[32];
226
223
  }
227
224
  let t12;
228
- if ($[34] !== overwriteExisting) {
225
+ if ($[33] !== overwriteExisting) {
229
226
  t12 = () => setOverwriteExisting(!overwriteExisting);
230
- $[34] = overwriteExisting;
231
- $[35] = t12;
227
+ $[33] = overwriteExisting;
228
+ $[34] = t12;
232
229
  } else {
233
- t12 = $[35];
230
+ t12 = $[34];
234
231
  }
235
232
  return _jsxs(React.Fragment, {
236
233
  children: [_jsx(PopupList.Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","serverURL","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","message","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n serverURL,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","message","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAK9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,wBAAwB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAsGlE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAK9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,wBAAwB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqGlE,CAAA"}
@@ -59,8 +59,7 @@ export const DefaultListViewTabs = t0 => {
59
59
  }
60
60
  const url = formatAdminURL({
61
61
  adminRoute: config.routes.admin,
62
- path,
63
- serverURL: config.serverURL
62
+ path
64
63
  });
65
64
  router.push(url);
66
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","usePreferences","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","setPreference","router","isTrashEnabled","trash","isFoldersEnabled","folders","t1","slug","newViewType","listViewType","path","bb21","url","adminRoute","routes","admin","serverURL","push","handleViewChange","allButtonLabel","labels","plural","t2","t3","Symbol","for","allButtonId","toLowerCase","replace","t4","t5","filter","Boolean","t6","_jsxs","className","children","buttonStyle","join","disabled","el","id","onClick","_jsx"],"sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'default-list-view-tabs'\n\ntype DefaultListViewTabsProps = {\n collectionConfig: ClientCollectionConfig\n config: ClientConfig\n onChange?: (viewType: ViewTypes) => void\n viewType?: ViewTypes\n}\n\nexport const DefaultListViewTabs: React.FC<DefaultListViewTabsProps> = ({\n collectionConfig,\n config,\n onChange,\n viewType,\n}) => {\n const { i18n, t } = useTranslation()\n const { setPreference } = usePreferences()\n const router = useRouter()\n const isTrashEnabled = collectionConfig.trash\n const isFoldersEnabled = collectionConfig.folders && config.folders\n\n if (!isTrashEnabled && !isFoldersEnabled) {\n return null\n }\n\n const handleViewChange = async (newViewType: ViewTypes) => {\n if (onChange) {\n onChange(newViewType)\n }\n\n if (newViewType === 'list' || newViewType === 'folders') {\n await setPreference(`collection-${collectionConfig.slug}`, {\n listViewType: newViewType,\n })\n }\n\n let path: `/${string}` = `/collections/${collectionConfig.slug}`\n switch (newViewType) {\n case 'folders':\n if (config.folders) {\n path = `/collections/${collectionConfig.slug}/${config.folders.slug}`\n }\n break\n case 'trash':\n path = `/collections/${collectionConfig.slug}/trash`\n break\n }\n\n const url = formatAdminURL({\n adminRoute: config.routes.admin,\n path,\n serverURL: config.serverURL,\n })\n\n router.push(url)\n }\n\n const allButtonLabel = `${t('general:all')} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`\n const allButtonId = allButtonLabel.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className={baseClass}>\n <Button\n buttonStyle=\"tab\"\n className={[`${baseClass}__button`, viewType === 'list' && `${baseClass}__button--active`]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'list'}\n el=\"button\"\n id={allButtonId}\n onClick={() => handleViewChange('list')}\n >\n {t('general:all')} {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </Button>\n\n {isFoldersEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'folders' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'folders'}\n el=\"button\"\n onClick={() => handleViewChange('folders')}\n >\n {t('folder:byFolder')}\n </Button>\n )}\n\n {isTrashEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'trash' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'trash'}\n el=\"button\"\n id=\"trash-view-pill\"\n onClick={() => handleViewChange('trash')}\n >\n {t('general:trash')}\n </Button>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","usePreferences","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","setPreference","router","isTrashEnabled","trash","isFoldersEnabled","folders","t1","slug","newViewType","listViewType","path","bb21","url","adminRoute","routes","admin","push","handleViewChange","allButtonLabel","labels","plural","t2","t3","Symbol","for","allButtonId","toLowerCase","replace","t4","t5","filter","Boolean","t6","_jsxs","className","children","buttonStyle","join","disabled","el","id","onClick","_jsx"],"sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'default-list-view-tabs'\n\ntype DefaultListViewTabsProps = {\n collectionConfig: ClientCollectionConfig\n config: ClientConfig\n onChange?: (viewType: ViewTypes) => void\n viewType?: ViewTypes\n}\n\nexport const DefaultListViewTabs: React.FC<DefaultListViewTabsProps> = ({\n collectionConfig,\n config,\n onChange,\n viewType,\n}) => {\n const { i18n, t } = useTranslation()\n const { setPreference } = usePreferences()\n const router = useRouter()\n const isTrashEnabled = collectionConfig.trash\n const isFoldersEnabled = collectionConfig.folders && config.folders\n\n if (!isTrashEnabled && !isFoldersEnabled) {\n return null\n }\n\n const handleViewChange = async (newViewType: ViewTypes) => {\n if (onChange) {\n onChange(newViewType)\n }\n\n if (newViewType === 'list' || newViewType === 'folders') {\n await setPreference(`collection-${collectionConfig.slug}`, {\n listViewType: newViewType,\n })\n }\n\n let path: `/${string}` = `/collections/${collectionConfig.slug}`\n switch (newViewType) {\n case 'folders':\n if (config.folders) {\n path = `/collections/${collectionConfig.slug}/${config.folders.slug}`\n }\n break\n case 'trash':\n path = `/collections/${collectionConfig.slug}/trash`\n break\n }\n\n const url = formatAdminURL({\n adminRoute: config.routes.admin,\n path,\n })\n\n router.push(url)\n }\n\n const allButtonLabel = `${t('general:all')} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`\n const allButtonId = allButtonLabel.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className={baseClass}>\n <Button\n buttonStyle=\"tab\"\n className={[`${baseClass}__button`, viewType === 'list' && `${baseClass}__button--active`]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'list'}\n el=\"button\"\n id={allButtonId}\n onClick={() => handleViewChange('list')}\n >\n {t('general:all')} {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </Button>\n\n {isFoldersEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'folders' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'folders'}\n el=\"button\"\n onClick={() => handleViewChange('folders')}\n >\n {t('folder:byFolder')}\n </Button>\n )}\n\n {isTrashEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'trash' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'trash'}\n el=\"button\"\n id=\"trash-view-pill\"\n onClick={() => handleViewChange('trash')}\n >\n {t('general:trash')}\n </Button>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuK1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwK1C,CAAA"}
@@ -34,8 +34,7 @@ export const DeleteDocument = props => {
34
34
  routes: {
35
35
  admin: adminRoute,
36
36
  api
37
- },
38
- serverURL
37
+ }
39
38
  },
40
39
  getEntityConfig
41
40
  } = useConfig();
@@ -69,12 +68,16 @@ export const DeleteDocument = props => {
69
68
  const handleDelete = useCallback(async () => {
70
69
  setModified(false);
71
70
  try {
72
- const res = deletePermanently || !collectionConfig.trash ? await requests.delete(`${serverURL}${api}/${collectionSlug}/${id}`, {
71
+ const url = formatAdminURL({
72
+ apiRoute: api,
73
+ path: `/${collectionSlug}/${id}`
74
+ });
75
+ const res = deletePermanently || !collectionConfig.trash ? await requests.delete(url, {
73
76
  headers: {
74
77
  'Accept-Language': i18n.language,
75
78
  'Content-Type': 'application/json'
76
79
  }
77
- }) : await requests.patch(`${serverURL}${api}/${collectionSlug}/${id}`, {
80
+ }) : await requests.patch(url, {
78
81
  body: JSON.stringify({
79
82
  deletedAt: new Date().toISOString()
80
83
  }),
@@ -92,8 +95,7 @@ export const DeleteDocument = props => {
92
95
  if (redirectAfterDelete) {
93
96
  return startRouteTransition(() => router.push(formatAdminURL({
94
97
  adminRoute,
95
- path: `/collections/${collectionSlug}`,
96
- serverURL
98
+ path: `/collections/${collectionSlug}`
97
99
  })));
98
100
  }
99
101
  if (typeof onDelete === 'function') {
@@ -113,7 +115,7 @@ export const DeleteDocument = props => {
113
115
  } catch (_err) {
114
116
  return addDefaultError();
115
117
  }
116
- }, [deletePermanently, setModified, serverURL, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition]);
118
+ }, [deletePermanently, setModified, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition]);
117
119
  if (id) {
118
120
  return /*#__PURE__*/_jsxs(Fragment, {
119
121
  children: [/*#__PURE__*/_jsx(PopupList.Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","router","i18n","t","startRouteTransition","openModal","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","res","trash","delete","headers","language","patch","body","JSON","stringify","deletedAt","Date","toISOString","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { ConfirmationModal } from '../ConfirmationModal/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 readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n try {\n const res =\n deletePermanently || !collectionConfig.trash\n ? await requests.delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(`${serverURL}${api}/${collectionSlug}/${id}`, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(\n deletePermanently || !collectionConfig.trash\n ? 'general:titleDeleted'\n : 'general:titleTrashed',\n {\n label: getTranslation(singularLabel, i18n),\n title,\n },\n ) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}`, serverURL }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n deletePermanently,\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={collectionConfig.trash ? 'general:aboutToTrash' : 'general:aboutToDelete'}\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","getEntityConfig","collectionConfig","setModified","router","i18n","t","startRouteTransition","openModal","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","url","apiRoute","path","res","trash","delete","headers","language","patch","body","JSON","stringify","deletedAt","Date","toISOString","json","status","success","label","message","push","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { ConfirmationModal } from '../ConfirmationModal/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 readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n try {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}`,\n })\n const res =\n deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(\n deletePermanently || !collectionConfig.trash\n ? 'general:titleDeleted'\n : 'general:titleTrashed',\n {\n label: getTranslation(singularLabel, i18n),\n title,\n },\n ) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}` })),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n deletePermanently,\n setModified,\n\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={collectionConfig.trash ? 'general:aboutToTrash' : 'general:aboutToDelete'}\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkEtC,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,qBAuQpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkEtC,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,qBA0QpB"}
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import { getTranslation } from '@payloadcms/translations';
7
7
  import { useRouter, useSearchParams } from 'next/navigation.js';
8
- import { mergeListSearchAndWhere } from 'payload/shared';
8
+ import { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared';
9
9
  import * as qs from 'qs-esm';
10
10
  import React from 'react';
11
11
  import { toast } from 'sonner';
@@ -193,21 +193,24 @@ export function DeleteMany_v4({
193
193
  }] : [])]
194
194
  };
195
195
  }
196
- const url = `${serverURL}${api}/${relationTo}${qs.stringify({
197
- limit: 0,
198
- locale,
199
- select: {},
200
- where: mergeListSearchAndWhere({
201
- collectionConfig,
202
- search,
203
- where: whereConstraint
204
- }),
205
- ...(viewType === 'trash' ? {
206
- trash: true
207
- } : {})
208
- }, {
209
- addQueryPrefix: true
210
- })}`;
196
+ const url = formatAdminURL({
197
+ apiRoute: api,
198
+ path: `/${relationTo}${qs.stringify({
199
+ limit: 0,
200
+ locale,
201
+ select: {},
202
+ where: mergeListSearchAndWhere({
203
+ collectionConfig,
204
+ search,
205
+ where: whereConstraint
206
+ }),
207
+ ...(viewType === 'trash' ? {
208
+ trash: true
209
+ } : {})
210
+ }, {
211
+ addQueryPrefix: true
212
+ })}`
213
+ });
211
214
  const deleteManyResponse = viewType === 'trash' || deletePermanently || !collectionConfig.trash ? await requests.delete(url, {
212
215
  headers: {
213
216
  'Accept-Language': i18n.language,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","ids","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","select","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","ids","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","apiRoute","path","limit","select","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}