@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
@@ -3,6 +3,7 @@
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import './index.scss';
5
5
  import { DragOverlay } from '@dnd-kit/core';
6
+ import { formatAdminURL } from 'payload/shared';
6
7
  import React, { useEffect, useState } from 'react';
7
8
  import { toast } from 'sonner';
8
9
  import { useConfig } from '../../providers/Config/index.js';
@@ -88,7 +89,10 @@ export const OrderableTable = ({
88
89
  orderableFieldName,
89
90
  target
90
91
  };
91
- const response = await fetch(`${config.serverURL}${config.routes.api}/reorder`, {
92
+ const response = await fetch(formatAdminURL({
93
+ apiRoute: config.routes.api,
94
+ path: '/reorder'
95
+ }), {
92
96
  body: JSON.stringify(jsonBody),
93
97
  credentials: 'include',
94
98
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"OrderableTable.js","names":["DragOverlay","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","serverURL","routes","api","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(`${config.serverURL}${config.routes.api}/reorder`, {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OrderableTable.js","names":["DragOverlay","formatAdminURL","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","apiRoute","routes","api","path","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: '/reorder',\n }),\n {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAgGlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA+FlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { appendUploadSelectFields } from 'payload/shared';
5
+ import { appendUploadSelectFields, formatAdminURL } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
7
  import React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react';
8
8
  import { useDebounce } from '../../../hooks/useDebounce.js';
@@ -12,7 +12,7 @@ import { useTranslation } from '../../../providers/Translation/index.js';
12
12
  import { reducer } from './reducer.js';
13
13
  const Context = /*#__PURE__*/createContext({});
14
14
  export const RelationshipProvider = t0 => {
15
- const $ = _c(16);
15
+ const $ = _c(15);
16
16
  const {
17
17
  children
18
18
  } = t0;
@@ -30,8 +30,7 @@ export const RelationshipProvider = t0 => {
30
30
  } = useConfig();
31
31
  const {
32
32
  collections,
33
- routes: t3,
34
- serverURL
33
+ routes: t3
35
34
  } = t2;
36
35
  const {
37
36
  api
@@ -44,7 +43,7 @@ export const RelationshipProvider = t0 => {
44
43
  } = useLocale();
45
44
  const prevLocale = useRef(locale);
46
45
  let t4;
47
- if ($[1] !== api || $[2] !== collections || $[3] !== debouncedDocuments || $[4] !== i18n || $[5] !== locale || $[6] !== serverURL) {
46
+ if ($[1] !== api || $[2] !== collections || $[3] !== debouncedDocuments || $[4] !== i18n || $[5] !== locale) {
48
47
  t4 = t5 => {
49
48
  const reloadAll = t5 === undefined ? false : t5;
50
49
  Object.entries(debouncedDocuments).forEach(async t6 => {
@@ -57,7 +56,10 @@ export const RelationshipProvider = t0 => {
57
56
  }
58
57
  });
59
58
  if (idsToLoad.length > 0) {
60
- const url = `${serverURL}${api}/${slug}`;
59
+ const url = formatAdminURL({
60
+ apiRoute: api,
61
+ path: `/${slug}`
62
+ });
61
63
  const params = new URLSearchParams();
62
64
  const select = {};
63
65
  params.append("depth", "0");
@@ -113,44 +115,43 @@ export const RelationshipProvider = t0 => {
113
115
  $[3] = debouncedDocuments;
114
116
  $[4] = i18n;
115
117
  $[5] = locale;
116
- $[6] = serverURL;
117
- $[7] = t4;
118
+ $[6] = t4;
118
119
  } else {
119
- t4 = $[7];
120
+ t4 = $[6];
120
121
  }
121
122
  const loadRelationshipDocs = t4;
122
123
  let t5;
123
124
  let t6;
124
- if ($[8] !== loadRelationshipDocs || $[9] !== locale) {
125
+ if ($[7] !== loadRelationshipDocs || $[8] !== locale) {
125
126
  t5 = () => {
126
127
  loadRelationshipDocs(locale && prevLocale.current !== locale);
127
128
  prevLocale.current = locale;
128
129
  };
129
130
  t6 = [locale, loadRelationshipDocs];
130
- $[8] = loadRelationshipDocs;
131
- $[9] = locale;
132
- $[10] = t5;
133
- $[11] = t6;
131
+ $[7] = loadRelationshipDocs;
132
+ $[8] = locale;
133
+ $[9] = t5;
134
+ $[10] = t6;
134
135
  } else {
135
- t5 = $[10];
136
- t6 = $[11];
136
+ t5 = $[9];
137
+ t6 = $[10];
137
138
  }
138
139
  useEffect(t5, t6);
139
140
  let t7;
140
- if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
141
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
141
142
  t7 = relationships => {
142
143
  dispatchDocuments({
143
144
  type: "REQUEST",
144
145
  docs: relationships
145
146
  });
146
147
  };
147
- $[12] = t7;
148
+ $[11] = t7;
148
149
  } else {
149
- t7 = $[12];
150
+ t7 = $[11];
150
151
  }
151
152
  const getRelationships = t7;
152
153
  let t8;
153
- if ($[13] !== children || $[14] !== documents) {
154
+ if ($[12] !== children || $[13] !== documents) {
154
155
  t8 = _jsx(Context, {
155
156
  value: {
156
157
  documents,
@@ -158,11 +159,11 @@ export const RelationshipProvider = t0 => {
158
159
  },
159
160
  children
160
161
  });
161
- $[13] = children;
162
- $[14] = documents;
163
- $[15] = t8;
162
+ $[12] = children;
163
+ $[13] = documents;
164
+ $[14] = t8;
164
165
  } else {
165
- t8 = $[15];
166
+ t8 = $[14];
166
167
  }
167
168
  return t8;
168
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","appendUploadSelectFields","qs","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","collections","routes","t3","serverURL","api","i18n","code","locale","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","params","URLSearchParams","select","append","collection","find","admin","enableListViewSelectAPI","fieldToSelect","useAsTitle","upload","collectionConfig","idsToString","map","_temp","join","query","toString","stringify","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { SelectType, TypeWithID } from 'payload'\n\nimport { appendUploadSelectFields } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = `${serverURL}${api}/${slug}`\n\n const params = new URLSearchParams()\n const select: SelectType = {}\n\n params.append('depth', '0')\n params.append('limit', '250')\n\n const collection = collections.find((c) => c.slug === slug)\n if (collection.admin.enableListViewSelectAPI) {\n const fieldToSelect = collection.admin.useAsTitle ?? 'id'\n select[fieldToSelect] = true\n\n if (collection.upload) {\n appendUploadSelectFields({ collectionConfig: collection, select })\n }\n }\n\n if (locale) {\n params.append('locale', locale)\n }\n\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n\n const query = `?${params.toString()}&${qs.stringify({ select })}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, serverURL, api, i18n, locale, collections],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,wBAAwB,QAAQ;AACzC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ;AAEtF,SAASC,WAAW,QAAQ;AAC5B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AAqBxB,MAAMC,OAAA,gBAAUX,aAAA,CAAc,CAAC;AAE/B,OAAO,MAAMY,oBAAA,GAA0EC,EAAA;EAAA,MAAAC,CAAA,GAAAlB,EAAA;EAAC;IAAAmB;EAAA,IAAAF,EAEvF;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAG,MAAA,CAAAC,GAAA;IAC4DF,EAAA;IAACF,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA5D,OAAAK,SAAA,EAAAC,iBAAA,IAAuChB,UAAA,CAAAM,OAAA,EAAoBM,EAAC;EAC5D,MAAAK,kBAAA,GAA2Bf,WAAA,CAAYa,SAAA,KAAW;EAElD;IAAAG,MAAA,EAAAC;EAAA,IAMIhB,SAAA;EALM;IAAAiB,WAAA;IAAAC,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAIP;EAFS;IAAAK;EAAA,IAAAF,EAAO;EAKnB;IAAAG;EAAA,IAAiBpB,cAAA;EACjB;IAAAqB,IAAA,EAAAC;EAAA,IAAyBvB,SAAA;EACzB,MAAAwB,UAAA,GAAmB3B,MAAA,CAAO0B,MAAA;EAAA,IAAAE,EAAA;EAAA,IAAAnB,CAAA,QAAAc,GAAA,IAAAd,CAAA,QAAAU,WAAA,IAAAV,CAAA,QAAAO,kBAAA,IAAAP,CAAA,QAAAe,IAAA,IAAAf,CAAA,QAAAiB,MAAA,IAAAjB,CAAA,QAAAa,SAAA;IAGxBM,EAAA,GAAAC,EAAA;MAAC,MAAAC,SAAA,GAAAD,EAAiB,KAAAE,SAAA,WAAjBF,EAAiB;MAChBG,MAAA,CAAAC,OAAA,CAAejB,kBAAA,EAAAkB,OAAA,OAAAC,EAAA;QAAmC,OAAAC,IAAA,EAAAC,IAAA,IAAAF,EAAY;QAC5D,MAAAG,SAAA;QAEAN,MAAA,CAAAC,OAAA,CAAeI,IAAA,EAAAH,OAAA,CAAAK,EAAA;UAAe,OAAAC,EAAA,EAAAC,KAAA,IAAAF,EAAW;UAAA,IACnCE,KAAA,SAAU,IAAQX,SAAA;YACpBQ,SAAA,CAAAI,IAAA,CAAeF,EAAA;UAAA;QAAA,CAEnB;QAAA,IAEIF,SAAA,CAAAK,MAAA,IAAmB;UACrB,MAAAC,GAAA,GAAY,GAAGtB,SAAA,GAAYC,GAAA,IAAOa,IAAA,EAAM;UAExC,MAAAS,MAAA,OAAAC,eAAA;UACA,MAAAC,MAAA;UAEAF,MAAA,CAAAG,MAAA,CAAc,SAAS;UACvBH,MAAA,CAAAG,MAAA,CAAc,SAAS;UAEvB,MAAAC,UAAA,GAAmB9B,WAAA,CAAA+B,IAAA,CAAA5D,CAAA,IAAwBA,CAAA,CAAA8C,IAAA,KAAWA,IAAA;UAAA,IAClDa,UAAA,CAAAE,KAAA,CAAAC,uBAAA;YACF,MAAAC,aAAA,GAAsBJ,UAAA,CAAAE,KAAA,CAAAG,UAAA,IAA+B;YACrDP,MAAM,CAACM,aAAA;YAAA,IAEHJ,UAAA,CAAAM,MAAA;cACF/D,wBAAA;gBAAAgE,gBAAA,EAA6CP,UAAA;gBAAAF;cAAA,CAAmB;YAAA;UAAA;UAAA,IAIhErB,MAAA;YACFmB,MAAA,CAAAG,MAAA,CAAc,UAAUtB,MAAA;UAAA;UAG1B,MAAA+B,WAAA,GAAoBnB,SAAA,CAAAoB,GAAA,CAAAC,KAA6B;UACjDd,MAAA,CAAAG,MAAA,CAAc,iBAAiBS,WAAA,CAAAG,IAAA,CAAiB;UAEhD,MAAAC,KAAA,GAAc,IAAIhB,MAAA,CAAAiB,QAAA,CAAe,KAAMrE,EAAA,CAAAsE,SAAA;YAAAhB;UAAA,CAAsB,GAAI;UAEjE,MAAAiB,MAAA,SAAqBC,KAAA,CAAM,GAAGrB,GAAA,GAAMiB,KAAA,EAAO;YAAAK,WAAA,EAC5B;YAAAC,OAAA;cAAA,mBAEQ3C,IAAA,CAAA4C;YAAA;UAAA,CAEvB;UAAA,IAEIJ,MAAA,CAAAK,EAAA;YACF,MAAAC,IAAA,SAAmBN,MAAA,CAAAM,IAAA,CAAW;YAAA,IAC1BA,IAAA,CAAAjC,IAAA;cACFtB,iBAAA;gBAAAwD,IAAA,EACQ;gBAAAlC,IAAA,EACAiC,IAAA,CAAAjC,IAAA;gBAAAC,SAAA;gBAAAkC,UAAA,EAEMpC;cAAA,CACd;YAAA;UAAA;YAGFrB,iBAAA;cAAAwD,IAAA,EAA0B;cAAAlC,IAAA;cAAAC,SAAA;cAAAkC,UAAA,EAA+CpC;YAAA,CAAK;UAAA;QAAA;MAAA,CAGpF;IAAA;IACF3B,CAAA,MAAAc,GAAA;IAAAd,CAAA,MAAAU,WAAA;IAAAV,CAAA,MAAAO,kBAAA;IAAAP,CAAA,MAAAe,IAAA;IAAAf,CAAA,MAAAiB,MAAA;IAAAjB,CAAA,MAAAa,SAAA;IAAAb,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EA7DF,MAAAgE,oBAAA,GAA6B7C,EA8DoC;EAAA,IAAAC,EAAA;EAAA,IAAAM,EAAA;EAAA,IAAA1B,CAAA,QAAAgE,oBAAA,IAAAhE,CAAA,QAAAiB,MAAA;IAGvDG,EAAA,GAAAA,CAAA;MACH4C,oBAAA,CAAqB/C,MAAA,IAAUC,UAAA,CAAA+C,OAAA,KAAuBhD,MAAA;MAC3DC,UAAA,CAAA+C,OAAA,GAAqBhD,MAAA;IAAA;IACpBS,EAAA,IAACT,MAAA,EAAQ+C,oBAAA;IAAqBhE,CAAA,MAAAgE,oBAAA;IAAAhE,CAAA,MAAAiB,MAAA;IAAAjB,CAAA,OAAAoB,EAAA;IAAApB,CAAA,OAAA0B,EAAA;EAAA;IAAAN,EAAA,GAAApB,CAAA;IAAA0B,EAAA,GAAA1B,CAAA;EAAA;EAHjCX,SAAA,CAAU+B,EAGV,EAAGM,EAA8B;EAAA,IAAAI,EAAA;EAAA,IAAA9B,CAAA,SAAAG,MAAA,CAAAC,GAAA;IAG/B0B,EAAA,GAAAoC,aAAA;MACE5D,iBAAA;QAAAwD,IAAA,EAA0B;QAAAlC,IAAA,EAAiBsC;MAAA,CAAc;IAAA;IAC3DlE,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAHF,MAAAmE,gBAAA,GAAyBrC,EAIrB;EAAA,IAAAsC,EAAA;EAAA,IAAApE,CAAA,SAAAC,QAAA,IAAAD,CAAA,SAAAK,SAAA;IAGG+D,EAAA,GAAAC,IAAA,CAAAxE,OAAA;MAAAmC,KAAA;QAAA3B,SAAA;QAAA8D;MAAA;MAAAlE;IAAA,C;;;;;;;SAAAmE,E;CACT;AAEA,OAAO,MAAME,oBAAA,GAAuBA,CAAA,KAA+BnF,GAAA,CAAIU,OAAA;AAlGgB,SAAAqD,MAAAqB,IAAA;EAAA,OAoDnCC,MAAA,CAAOzC,IAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","appendUploadSelectFields","formatAdminURL","qs","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","collections","routes","t3","api","i18n","code","locale","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","apiRoute","path","params","URLSearchParams","select","append","collection","find","admin","enableListViewSelectAPI","fieldToSelect","useAsTitle","upload","collectionConfig","idsToString","map","_temp","join","query","toString","stringify","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { SelectType, TypeWithID } from 'payload'\n\nimport { appendUploadSelectFields, formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = formatAdminURL({ apiRoute: api, path: `/${slug}` })\n\n const params = new URLSearchParams()\n const select: SelectType = {}\n\n params.append('depth', '0')\n params.append('limit', '250')\n\n const collection = collections.find((c) => c.slug === slug)\n if (collection.admin.enableListViewSelectAPI) {\n const fieldToSelect = collection.admin.useAsTitle ?? 'id'\n select[fieldToSelect] = true\n\n if (collection.upload) {\n appendUploadSelectFields({ collectionConfig: collection, select })\n }\n }\n\n if (locale) {\n params.append('locale', locale)\n }\n\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n\n const query = `?${params.toString()}&${qs.stringify({ select })}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, api, i18n, locale, collections],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA0JhF"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA4JhF"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { useRouter, useSearchParams } from 'next/navigation.js';
4
- import { combineWhereConstraints, mergeListSearchAndWhere } from 'payload/shared';
4
+ import { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared';
5
5
  import * as qs from 'qs-esm';
6
6
  import React, { useCallback } from 'react';
7
7
  import { toast } from 'sonner';
@@ -32,8 +32,7 @@ export function UnpublishManyDrawerContent(props) {
32
32
  config: {
33
33
  routes: {
34
34
  api
35
- },
36
- serverURL
35
+ }
37
36
  }
38
37
  } = useConfig();
39
38
  const {
@@ -84,7 +83,11 @@ export function UnpublishManyDrawerContent(props) {
84
83
  });
85
84
  }, [collection, searchParams, selectAll, ids, locale, where]);
86
85
  const handleUnpublish = useCallback(async () => {
87
- await requests.patch(`${serverURL}${api}/${slug}${queryString}`, {
86
+ const url = formatAdminURL({
87
+ apiRoute: api,
88
+ path: `/${slug}${queryString}`
89
+ });
90
+ await requests.patch(url, {
88
91
  body: JSON.stringify({
89
92
  _status: 'draft'
90
93
  }),
@@ -129,7 +132,7 @@ export function UnpublishManyDrawerContent(props) {
129
132
  return addDefaultError();
130
133
  }
131
134
  });
132
- }, [serverURL, api, slug, queryString, i18n, plural, singular, t, router, searchParams, selectAll, clearRouteCache, addDefaultError, onSuccess]);
135
+ }, [api, slug, queryString, i18n, plural, singular, t, router, searchParams, selectAll, clearRouteCache, addDefaultError, onSuccess]);
133
136
  return /*#__PURE__*/_jsx(ConfirmationModal, {
134
137
  body: t('version:aboutToUnpublishSelection', {
135
138
  label: getTranslation(plural, i18n)
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useTranslation","requests","parseSearchParams","ConfirmationModal","UnpublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","config","routes","api","serverURL","code","locale","i18n","t","searchParams","router","clearRouteCache","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handleUnpublish","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { UnpublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/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'\n\ntype UnpublishManyDrawerContentProps = {\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & UnpublishManyProps\n\nexport function UnpublishManyDrawerContent(props: UnpublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const searchParams = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'draft',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (!selectAll) {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handleUnpublish = useCallback(async () => {\n await requests\n .patch(`${serverURL}${api}/${slug}${queryString}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\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 const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\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 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 if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n serverURL,\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={drawerSlug}\n onConfirm={handleUnpublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["getTranslation","useRouter","useSearchParams","combineWhereConstraints","formatAdminURL","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useTranslation","requests","parseSearchParams","ConfirmationModal","UnpublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","config","routes","api","code","locale","i18n","t","searchParams","router","clearRouteCache","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handleUnpublish","url","apiRoute","path","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { UnpublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/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'\n\ntype UnpublishManyDrawerContentProps = {\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & UnpublishManyProps\n\nexport function UnpublishManyDrawerContent(props: UnpublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const searchParams = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'draft',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (!selectAll) {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handleUnpublish = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${slug}${queryString}`,\n })\n await requests\n .patch(url, {\n body: JSON.stringify({\n _status: 'draft',\n }),\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 const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\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 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 if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={drawerSlug}\n onConfirm={handleUnpublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAA6D,MAAM,OAAO,CAAA;AAiBjF,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAc9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAkDnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAYxC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CACnC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAua9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAA6D,MAAM,OAAO,CAAA;AAiBjF,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAc9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAkDnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAYxC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CACnC,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0a9C,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
- import { isImage } from 'payload/shared';
6
+ import { formatAdminURL, isImage } from 'payload/shared';
7
7
  import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
8
8
  import { toast } from 'sonner';
9
9
  import { FieldError } from '../../fields/FieldError/index.js';
@@ -153,8 +153,7 @@ export const Upload_v4 = props => {
153
153
  config: {
154
154
  routes: {
155
155
  api
156
- },
157
- serverURL
156
+ }
158
157
  }
159
158
  } = useConfig();
160
159
  const {
@@ -276,7 +275,10 @@ export const Upload_v4 = props => {
276
275
  // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true
277
276
  try {
278
277
  const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`;
279
- const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`);
278
+ const serverResponse = await fetch(formatAdminURL({
279
+ apiRoute: api,
280
+ path: pasteURL
281
+ }));
280
282
  if (!serverResponse.ok) {
281
283
  throw new Error(`Fetch failed with status: ${serverResponse.status}`);
282
284
  }
@@ -293,7 +295,7 @@ export const Upload_v4 = props => {
293
295
  toast.error('The provided URL is not allowed.');
294
296
  setUploadStatus('failed');
295
297
  }
296
- }, [api, collectionSlug, fileUrl, handleFileChange, id, serverURL, setUploadStatus, uploadConfig, uploadControlFileName, useServerSideFetch]);
298
+ }, [api, collectionSlug, fileUrl, handleFileChange, id, setUploadStatus, uploadConfig, uploadControlFileName, useServerSideFetch]);
297
299
  useEffect(() => {
298
300
  if (initialState?.file?.value instanceof File) {
299
301
  setFileSrc(URL.createObjectURL(initialState.file.value));