@payloadcms/ui 3.24.0-canary.7d9fbaf → 3.24.0-canary.80e034e

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 (204) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +143 -108
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/Button/index.d.ts.map +1 -1
  5. package/dist/elements/Button/index.js +1 -0
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/index.scss +21 -5
  8. package/dist/elements/ConfirmationModal/index.d.ts +16 -0
  9. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -0
  10. package/dist/elements/ConfirmationModal/index.js +158 -0
  11. package/dist/elements/ConfirmationModal/index.js.map +1 -0
  12. package/dist/elements/{GenerateConfirmation → ConfirmationModal}/index.scss +1 -1
  13. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  14. package/dist/elements/DatePicker/DatePicker.js +2 -0
  15. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  16. package/dist/elements/DatePicker/types.d.ts +1 -0
  17. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  18. package/dist/elements/DatePicker/types.js.map +1 -1
  19. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  20. package/dist/elements/DeleteDocument/index.js +31 -79
  21. package/dist/elements/DeleteDocument/index.js.map +1 -1
  22. package/dist/elements/DeleteDocument/index.scss +0 -29
  23. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  24. package/dist/elements/DeleteMany/index.js +16 -43
  25. package/dist/elements/DeleteMany/index.js.map +1 -1
  26. package/dist/elements/DeleteMany/index.scss +0 -29
  27. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DuplicateDocument/index.d.ts +0 -1
  30. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  31. package/dist/elements/DuplicateDocument/index.js +25 -54
  32. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  33. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
  34. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
  36. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  37. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
  38. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  39. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  40. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  41. package/dist/elements/FileDetails/index.d.ts +1 -0
  42. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  43. package/dist/elements/FileDetails/index.js.map +1 -1
  44. package/dist/elements/GenerateConfirmation/index.d.ts +1 -2
  45. package/dist/elements/GenerateConfirmation/index.d.ts.map +1 -1
  46. package/dist/elements/GenerateConfirmation/index.js +23 -47
  47. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  48. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -1
  49. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  50. package/dist/elements/LeaveWithoutSaving/index.js +56 -113
  51. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  52. package/dist/elements/ListControls/index.d.ts +1 -0
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +14 -0
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/ListControls/index.scss +5 -0
  57. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  58. package/dist/elements/Localizer/LocalizerLabel/index.js +11 -8
  59. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  60. package/dist/elements/Localizer/index.d.ts.map +1 -1
  61. package/dist/elements/Localizer/index.js +2 -0
  62. package/dist/elements/Localizer/index.js.map +1 -1
  63. package/dist/elements/Popup/index.d.ts +1 -0
  64. package/dist/elements/Popup/index.d.ts.map +1 -1
  65. package/dist/elements/Popup/index.js +2 -0
  66. package/dist/elements/Popup/index.js.map +1 -1
  67. package/dist/elements/PreviewButton/index.d.ts +2 -1
  68. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  69. package/dist/elements/PreviewButton/index.js +2 -2
  70. package/dist/elements/PreviewButton/index.js.map +1 -1
  71. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  72. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  73. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  74. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
  75. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  76. package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
  77. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  78. package/dist/elements/PublishButton/index.d.ts +2 -3
  79. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  80. package/dist/elements/PublishButton/index.js +20 -17
  81. package/dist/elements/PublishButton/index.js.map +1 -1
  82. package/dist/elements/PublishMany/index.d.ts +0 -1
  83. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  84. package/dist/elements/PublishMany/index.js +19 -45
  85. package/dist/elements/PublishMany/index.js.map +1 -1
  86. package/dist/elements/RelationshipTable/index.d.ts +7 -2
  87. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  88. package/dist/elements/RelationshipTable/index.js +69 -23
  89. package/dist/elements/RelationshipTable/index.js.map +1 -1
  90. package/dist/elements/RelationshipTable/index.scss +6 -0
  91. package/dist/elements/SaveButton/index.d.ts +2 -3
  92. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  93. package/dist/elements/SaveButton/index.js +3 -3
  94. package/dist/elements/SaveButton/index.js.map +1 -1
  95. package/dist/elements/SaveDraftButton/index.d.ts +2 -1
  96. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  97. package/dist/elements/SaveDraftButton/index.js +2 -2
  98. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  99. package/dist/elements/Status/index.d.ts.map +1 -1
  100. package/dist/elements/Status/index.js +173 -154
  101. package/dist/elements/Status/index.js.map +1 -1
  102. package/dist/elements/Status/index.scss +0 -41
  103. package/dist/elements/StayLoggedIn/index.d.ts +0 -1
  104. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  105. package/dist/elements/StayLoggedIn/index.js +45 -77
  106. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  107. package/dist/elements/Table/index.d.ts +1 -9
  108. package/dist/elements/Table/index.d.ts.map +1 -1
  109. package/dist/elements/Table/index.js.map +1 -1
  110. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  111. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  112. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  113. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +20 -0
  114. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  115. package/dist/elements/TableColumns/buildPolymorphicColumnState.js +200 -0
  116. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  117. package/dist/elements/TableColumns/index.d.ts +2 -3
  118. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  119. package/dist/elements/TableColumns/index.js +4 -3
  120. package/dist/elements/TableColumns/index.js.map +1 -1
  121. package/dist/elements/UnpublishMany/index.d.ts +1 -2
  122. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  123. package/dist/elements/UnpublishMany/index.js +14 -42
  124. package/dist/elements/UnpublishMany/index.js.map +1 -1
  125. package/dist/elements/Upload/index.d.ts.map +1 -1
  126. package/dist/elements/Upload/index.js +5 -1
  127. package/dist/elements/Upload/index.js.map +1 -1
  128. package/dist/elements/ViewDescription/index.d.ts +2 -5
  129. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  130. package/dist/elements/ViewDescription/index.js +2 -2
  131. package/dist/elements/ViewDescription/index.js.map +1 -1
  132. package/dist/exports/client/CodeEditor-L6GW2VQ6.js.map +0 -1
  133. package/dist/exports/client/{DatePicker-THCU4KZJ.js → DatePicker-HHQ6TPOW.js} +2 -2
  134. package/dist/exports/client/{DatePicker-THCU4KZJ.js.map → DatePicker-HHQ6TPOW.js.map} +0 -1
  135. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -1
  136. package/dist/exports/client/{chunk-EG3ZOHFS.js → chunk-IMEQ6NKQ.js} +2 -2
  137. package/dist/exports/client/{chunk-EG3ZOHFS.js.map → chunk-IMEQ6NKQ.js.map} +3 -4
  138. package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -1
  139. package/dist/exports/client/index.d.ts +46 -4
  140. package/dist/exports/client/index.d.ts.map +1 -1
  141. package/dist/exports/client/index.js +23 -23
  142. package/dist/exports/client/index.js.map +4 -5
  143. package/dist/fields/DateTime/index.d.ts.map +1 -1
  144. package/dist/fields/DateTime/index.js +24 -6
  145. package/dist/fields/DateTime/index.js.map +1 -1
  146. package/dist/fields/Join/index.d.ts.map +1 -1
  147. package/dist/fields/Join/index.js +8 -3
  148. package/dist/fields/Join/index.js.map +1 -1
  149. package/dist/fields/Select/Input.d.ts.map +1 -1
  150. package/dist/fields/Select/Input.js +2 -0
  151. package/dist/fields/Select/Input.js.map +1 -1
  152. package/dist/fields/Tabs/Tab/index.scss +2 -1
  153. package/dist/fields/Upload/Input.d.ts +1 -0
  154. package/dist/fields/Upload/Input.d.ts.map +1 -1
  155. package/dist/fields/Upload/Input.js.map +1 -1
  156. package/dist/forms/Form/index.d.ts.map +1 -1
  157. package/dist/forms/Form/index.js +19 -8
  158. package/dist/forms/Form/index.js.map +1 -1
  159. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  160. package/dist/forms/Form/initContextState.js +2 -0
  161. package/dist/forms/Form/initContextState.js.map +1 -1
  162. package/dist/forms/Form/types.d.ts +6 -0
  163. package/dist/forms/Form/types.d.ts.map +1 -1
  164. package/dist/forms/Form/types.js.map +1 -1
  165. package/dist/icons/Dots/index.d.ts +7 -0
  166. package/dist/icons/Dots/index.d.ts.map +1 -0
  167. package/dist/icons/Dots/index.js +12 -0
  168. package/dist/icons/Dots/index.js.map +1 -0
  169. package/dist/icons/Dots/index.scss +27 -0
  170. package/dist/providers/Selection/index.d.ts.map +1 -1
  171. package/dist/providers/Selection/index.js +5 -6
  172. package/dist/providers/Selection/index.js.map +1 -1
  173. package/dist/styles.css +1 -1
  174. package/dist/utilities/buildTableState.d.ts +1 -2
  175. package/dist/utilities/buildTableState.d.ts.map +1 -1
  176. package/dist/utilities/buildTableState.js +72 -20
  177. package/dist/utilities/buildTableState.js.map +1 -1
  178. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  179. package/dist/utilities/handleFormStateLocking.js +3 -6
  180. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  181. package/dist/utilities/renderTable.d.ts +6 -4
  182. package/dist/utilities/renderTable.d.ts.map +1 -1
  183. package/dist/utilities/renderTable.js +49 -17
  184. package/dist/utilities/renderTable.js.map +1 -1
  185. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  186. package/dist/views/Edit/Auth/index.js +56 -55
  187. package/dist/views/Edit/Auth/index.js.map +1 -1
  188. package/dist/views/Edit/index.d.ts +2 -2
  189. package/dist/views/Edit/index.d.ts.map +1 -1
  190. package/dist/views/Edit/index.js +3 -3
  191. package/dist/views/Edit/index.js.map +1 -1
  192. package/dist/views/List/index.d.ts +2 -25
  193. package/dist/views/List/index.d.ts.map +1 -1
  194. package/dist/views/List/index.js +6 -3
  195. package/dist/views/List/index.js.map +1 -1
  196. package/dist/views/List/types.d.ts +1 -18
  197. package/dist/views/List/types.d.ts.map +1 -1
  198. package/dist/views/List/types.js.map +1 -1
  199. package/package.json +5 -5
  200. package/dist/elements/DuplicateDocument/index.scss +0 -42
  201. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  202. package/dist/elements/PublishMany/index.scss +0 -39
  203. package/dist/elements/StayLoggedIn/index.scss +0 -40
  204. package/dist/elements/UnpublishMany/index.scss +0 -39
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { Modal, useModal } from '@faceless-ui/modal';
4
+ import { useModal } from '@faceless-ui/modal';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { useRouter, useSearchParams } from 'next/navigation.js';
7
7
  import * as qs from 'qs-esm';
8
- import React, { useCallback, useState } from 'react';
8
+ import React, { useCallback } from 'react';
9
9
  import { toast } from 'sonner';
10
10
  import { useAuth } from '../../providers/Auth/index.js';
11
11
  import { useConfig } from '../../providers/Config/index.js';
@@ -14,7 +14,7 @@ import { SelectAllStatus, useSelection } from '../../providers/Selection/index.j
14
14
  import { useTranslation } from '../../providers/Translation/index.js';
15
15
  import { requests } from '../../utilities/api.js';
16
16
  import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
17
- import { Button } from '../Button/index.js';
17
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
18
18
  import { Pill } from '../Pill/index.js';
19
19
  import './index.scss';
20
20
  const baseClass = 'delete-documents';
@@ -41,7 +41,7 @@ export const DeleteMany = props => {
41
41
  }
42
42
  } = useConfig();
43
43
  const {
44
- toggleModal
44
+ openModal
45
45
  } = useModal();
46
46
  const {
47
47
  count,
@@ -53,7 +53,6 @@ export const DeleteMany = props => {
53
53
  i18n,
54
54
  t
55
55
  } = useTranslation();
56
- const [deleting, setDeleting] = useState(false);
57
56
  const router = useRouter();
58
57
  const searchParams = useSearchParams();
59
58
  const {
@@ -66,7 +65,6 @@ export const DeleteMany = props => {
66
65
  toast.error(t('error:unknown'));
67
66
  }, [t]);
68
67
  const handleDelete = useCallback(async () => {
69
- setDeleting(true);
70
68
  const queryWithSearch = mergeListSearchAndWhere({
71
69
  collectionConfig: collection,
72
70
  search: searchParams.get('search')
@@ -80,7 +78,6 @@ export const DeleteMany = props => {
80
78
  }).then(async res => {
81
79
  try {
82
80
  const json = await res.json();
83
- toggleModal(modalSlug);
84
81
  const deletedDocs = json?.docs.length || 0;
85
82
  const successLabel = deletedDocs > 1 ? plural : singular;
86
83
  if (res.status < 400 || deletedDocs > 0) {
@@ -107,14 +104,14 @@ export const DeleteMany = props => {
107
104
  description: json.errors.map(error_0 => error_0.message).join('\n')
108
105
  });
109
106
  } else {
110
- addDefaultError();
107
+ return addDefaultError();
111
108
  }
112
109
  return false;
113
110
  } catch (_err) {
114
111
  return addDefaultError();
115
112
  }
116
113
  });
117
- }, [searchParams, addDefaultError, api, getQueryParams, i18n, modalSlug, plural, router, selectAll, serverURL, singular, slug, t, toggleAll, toggleModal, clearRouteCache, collection]);
114
+ }, [searchParams, addDefaultError, api, getQueryParams, i18n, plural, router, selectAll, serverURL, singular, slug, t, toggleAll, clearRouteCache, collection]);
118
115
  if (selectAll === SelectAllStatus.None || !hasDeletePermission) {
119
116
  return null;
120
117
  }
@@ -122,42 +119,18 @@ export const DeleteMany = props => {
122
119
  children: [/*#__PURE__*/_jsx(Pill, {
123
120
  className: `${baseClass}__toggle`,
124
121
  onClick: () => {
125
- setDeleting(false);
126
- toggleModal(modalSlug);
122
+ openModal(modalSlug);
127
123
  },
128
124
  children: t('general:delete')
129
- }), /*#__PURE__*/_jsx(Modal, {
130
- className: baseClass,
131
- slug: modalSlug,
132
- children: /*#__PURE__*/_jsxs("div", {
133
- className: `${baseClass}__wrapper`,
134
- children: [/*#__PURE__*/_jsxs("div", {
135
- className: `${baseClass}__content`,
136
- children: [/*#__PURE__*/_jsx("h1", {
137
- children: t('general:confirmDeletion')
138
- }), /*#__PURE__*/_jsx("p", {
139
- children: t('general:aboutToDeleteCount', {
140
- count,
141
- label: getTranslation(count > 1 ? plural : singular, i18n)
142
- })
143
- })]
144
- }), /*#__PURE__*/_jsxs("div", {
145
- className: `${baseClass}__controls`,
146
- children: [/*#__PURE__*/_jsx(Button, {
147
- buttonStyle: "secondary",
148
- id: "confirm-cancel",
149
- onClick: deleting ? undefined : () => toggleModal(modalSlug),
150
- size: "large",
151
- type: "button",
152
- children: t('general:cancel')
153
- }), /*#__PURE__*/_jsx(Button, {
154
- id: "confirm-delete",
155
- onClick: deleting ? undefined : handleDelete,
156
- size: "large",
157
- children: deleting ? t('general:deleting') : t('general:confirm')
158
- })]
159
- })]
160
- })
125
+ }), /*#__PURE__*/_jsx(ConfirmationModal, {
126
+ body: t('general:aboutToDeleteCount', {
127
+ count,
128
+ label: getTranslation(count > 1 ? plural : singular, i18n)
129
+ }),
130
+ confirmingLabel: t('general:deleting'),
131
+ heading: t('general:confirmDeletion'),
132
+ modalSlug: modalSlug,
133
+ onConfirm: handleDelete
161
134
  })]
162
135
  });
163
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","mergeListSearchAndWhere","Button","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","singular","permissions","config","routes","api","serverURL","toggleModal","count","getQueryParams","selectAll","toggleAll","i18n","t","deleting","setDeleting","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","modalSlug","addDefaultError","error","handleDelete","queryWithSearch","collectionConfig","search","get","queryString","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","label","errors","message","description","map","join","replace","stringify","page","undefined","addQueryPrefix","_err","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/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 { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection, collection: { slug, labels: { plural, singular } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { toggleModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [deleting, setDeleting] = useState(false)\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 modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n const queryString = getQueryParams(queryWithSearch)\n\n await requests\n .delete(`${serverURL}${api}/${slug}${queryString}`, {\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 toggleModal(modalSlug)\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:deletedCountSuccessfully', {\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 toggleAll()\n\n router.replace(\n qs.stringify(\n {\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n return null\n }\n\n if (json.errors) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n searchParams,\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n router,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleAll,\n toggleModal,\n clearRouteCache,\n collection,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n {t('general:aboutToDeleteCount', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete} size=\"large\">\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","mergeListSearchAndWhere","ConfirmationModal","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","singular","permissions","config","routes","api","serverURL","openModal","count","getQueryParams","selectAll","toggleAll","i18n","t","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","modalSlug","addDefaultError","error","handleDelete","queryWithSearch","collectionConfig","search","get","queryString","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","label","errors","message","description","map","join","replace","stringify","page","undefined","addQueryPrefix","_err","None","_jsxs","Fragment","_jsx","className","onClick","body","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/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 { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection, collection: { slug, labels: { plural, singular } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { openModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\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 modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n const queryString = getQueryParams(queryWithSearch)\n\n await requests\n .delete(`${serverURL}${api}/${slug}${queryString}`, {\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:deletedCountSuccessfully', {\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 toggleAll()\n\n router.replace(\n qs.stringify(\n {\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n return null\n }\n\n if (json.errors) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n } else {\n return addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n searchParams,\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n plural,\n router,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleAll,\n clearRouteCache,\n collection,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </Pill>\n <ConfirmationModal\n body={t('general:aboutToDeleteCount', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,34 +7,5 @@
7
7
  align-items: center;
8
8
  justify-content: center;
9
9
  height: 100%;
10
-
11
- &__wrapper {
12
- z-index: 1;
13
- position: relative;
14
- display: flex;
15
- flex-direction: column;
16
- gap: base(0.8);
17
- padding: base(2);
18
- max-width: base(36);
19
- }
20
-
21
- &__content {
22
- display: flex;
23
- flex-direction: column;
24
- gap: base(0.4);
25
-
26
- > * {
27
- margin: 0;
28
- }
29
- }
30
-
31
- &__controls {
32
- display: flex;
33
- gap: base(0.4);
34
-
35
- .btn {
36
- margin: 0;
37
- }
38
- }
39
10
  }
40
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAsB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CA4PA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAsB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CA4PA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import type { SanitizedCollectionConfig } from 'payload';
2
2
  import React from 'react';
3
3
  import type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js';
4
- import './index.scss';
5
4
  export type Props = {
6
5
  readonly id: string;
7
6
  readonly onDuplicate?: DocumentDrawerContextType['onDuplicate'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoJ7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+H7C,CAAA"}
@@ -1,24 +1,20 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { Modal, useModal } from '@faceless-ui/modal';
4
+ import { useModal } from '@faceless-ui/modal';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { useRouter } from 'next/navigation.js';
7
- import React, { useCallback, useState } from 'react';
7
+ import React, { useCallback } from 'react';
8
8
  import { toast } from 'sonner';
9
9
  import { useForm, useFormModified } from '../../forms/Form/context.js';
10
10
  import { useConfig } from '../../providers/Config/index.js';
11
- import { useEditDepth } from '../../providers/EditDepth/index.js';
12
11
  import { useLocale } from '../../providers/Locale/index.js';
13
12
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
14
13
  import { useTranslation } from '../../providers/Translation/index.js';
15
14
  import { requests } from '../../utilities/api.js';
16
15
  import { formatAdminURL } from '../../utilities/formatAdminURL.js';
17
- import { Button } from '../Button/index.js';
18
- import { drawerZBase } from '../Drawer/index.js';
19
- import './index.scss';
16
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
20
17
  import { PopupList } from '../Popup/index.js';
21
- const baseClass = 'duplicate';
22
18
  export const DuplicateDocument = ({
23
19
  id,
24
20
  slug,
@@ -29,7 +25,7 @@ export const DuplicateDocument = ({
29
25
  const router = useRouter();
30
26
  const modified = useFormModified();
31
27
  const {
32
- toggleModal
28
+ openModal
33
29
  } = useModal();
34
30
  const locale = useLocale();
35
31
  const {
@@ -51,19 +47,14 @@ export const DuplicateDocument = ({
51
47
  const collectionConfig = getEntityConfig({
52
48
  collectionSlug: slug
53
49
  });
54
- const [hasClicked, setHasClicked] = useState(false);
50
+ const [renderModal, setRenderModal] = React.useState(false);
55
51
  const {
56
52
  i18n,
57
53
  t
58
54
  } = useTranslation();
59
55
  const modalSlug = `duplicate-${id}`;
60
- const editDepth = useEditDepth();
61
- const handleClick = useCallback(async (override = false) => {
62
- setHasClicked(true);
63
- if (modified && !override) {
64
- toggleModal(modalSlug);
65
- return;
66
- }
56
+ const duplicate = useCallback(async () => {
57
+ setRenderModal(true);
67
58
  await requests.post(`${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
68
59
  body: JSON.stringify({}),
69
60
  headers: {
@@ -100,48 +91,28 @@ export const DuplicateDocument = ({
100
91
  }));
101
92
  }
102
93
  });
103
- }, [locale, modified, serverURL, apiRoute, slug, id, i18n, toggleModal, modalSlug, t, singularLabel, onDuplicate, redirectAfterDuplicate, setModified, router, adminRoute, collectionConfig, startRouteTransition]);
104
- const confirm = useCallback(async () => {
105
- setHasClicked(false);
106
- await handleClick(true);
107
- }, [handleClick]);
94
+ }, [locale, serverURL, apiRoute, slug, id, i18n, t, singularLabel, onDuplicate, redirectAfterDuplicate, setModified, router, adminRoute, collectionConfig, startRouteTransition]);
95
+ const onConfirm = useCallback(async () => {
96
+ setRenderModal(false);
97
+ await duplicate();
98
+ }, [duplicate]);
108
99
  return /*#__PURE__*/_jsxs(React.Fragment, {
109
100
  children: [/*#__PURE__*/_jsx(PopupList.Button, {
110
101
  id: "action-duplicate",
111
- onClick: () => void handleClick(false),
112
- children: t('general:duplicate')
113
- }), modified && hasClicked && /*#__PURE__*/_jsx(Modal, {
114
- className: `${baseClass}__modal`,
115
- slug: modalSlug,
116
- style: {
117
- zIndex: drawerZBase + editDepth
102
+ onClick: () => {
103
+ if (modified) {
104
+ setRenderModal(true);
105
+ return openModal(modalSlug);
106
+ }
107
+ return duplicate();
118
108
  },
119
- children: /*#__PURE__*/_jsxs("div", {
120
- className: `${baseClass}__wrapper`,
121
- children: [/*#__PURE__*/_jsxs("div", {
122
- className: `${baseClass}__content`,
123
- children: [/*#__PURE__*/_jsx("h1", {
124
- children: t('general:confirmDuplication')
125
- }), /*#__PURE__*/_jsx("p", {
126
- children: t('general:unsavedChangesDuplicate')
127
- })]
128
- }), /*#__PURE__*/_jsxs("div", {
129
- className: `${baseClass}__controls`,
130
- children: [/*#__PURE__*/_jsx(Button, {
131
- buttonStyle: "secondary",
132
- id: "confirm-cancel",
133
- onClick: () => toggleModal(modalSlug),
134
- size: "large",
135
- type: "button",
136
- children: t('general:cancel')
137
- }), /*#__PURE__*/_jsx(Button, {
138
- id: "confirm-duplicate",
139
- onClick: () => void confirm(),
140
- size: "large",
141
- children: t('general:duplicateWithoutSaving')
142
- })]
143
- })]
144
- })
109
+ children: t('general:duplicate')
110
+ }), renderModal && /*#__PURE__*/_jsx(ConfirmationModal, {
111
+ body: t('general:unsavedChangesDuplicate'),
112
+ confirmLabel: t('general:duplicateWithoutSaving'),
113
+ heading: t('general:unsavedChanges'),
114
+ modalSlug: modalSlug,
115
+ onConfirm: onConfirm
145
116
  })]
146
117
  });
147
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useEditDepth","useLocale","useRouteTransition","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","baseClass","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","singularLabel","router","modified","toggleModal","locale","setModified","startRouteTransition","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","hasClicked","setHasClicked","i18n","t","modalSlug","editDepth","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","confirm","_jsxs","Fragment","_jsx","onClick","className","style","zIndex","buttonStyle","size","type"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport './index.scss'\nimport { PopupList } from '../Popup/index.js'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n readonly id: string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const editDepth = useEditDepth()\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n onDuplicate,\n redirectAfterDuplicate,\n setModified,\n router,\n adminRoute,\n collectionConfig,\n startRouteTransition,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => void handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal\n className={`${baseClass}__modal`}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={() => void confirm()} size=\"large\">\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","React","useCallback","toast","useForm","useFormModified","useConfig","useLocale","useRouteTransition","useTranslation","requests","formatAdminURL","ConfirmationModal","PopupList","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","singularLabel","router","modified","openModal","locale","setModified","startRouteTransition","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","renderModal","setRenderModal","useState","i18n","t","modalSlug","duplicate","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","onConfirm","_jsxs","Fragment","_jsx","Button","onClick","confirmLabel","heading"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\n\nexport type Props = {\n readonly id: string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { openModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const [renderModal, setRenderModal] = React.useState(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const duplicate = useCallback(async () => {\n setRenderModal(true)\n\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n }, [\n locale,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n t,\n singularLabel,\n onDuplicate,\n redirectAfterDuplicate,\n setModified,\n router,\n adminRoute,\n collectionConfig,\n startRouteTransition,\n ])\n\n const onConfirm = useCallback(async () => {\n setRenderModal(false)\n\n await duplicate()\n }, [duplicate])\n\n return (\n <React.Fragment>\n <PopupList.Button\n id=\"action-duplicate\"\n onClick={() => {\n if (modified) {\n setRenderModal(true)\n return openModal(modalSlug)\n }\n\n return duplicate()\n }}\n >\n {t('general:duplicate')}\n </PopupList.Button>\n {renderModal && (\n <ConfirmationModal\n body={t('general:unsavedChangesDuplicate')}\n confirmLabel={t('general:duplicateWithoutSaving')}\n heading={t('general:unsavedChanges')}\n modalSlug={modalSlug}\n onConfirm={onConfirm}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ export type DraggableFileDetailsProps = {
10
10
  enableAdjustments?: boolean;
11
11
  hasImageSizes?: boolean;
12
12
  hasMany: boolean;
13
+ hideRemoveFile?: boolean;
13
14
  imageCacheTag?: string;
14
15
  isSortable?: boolean;
15
16
  removeItem?: (index: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqEpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6EpE,CAAA"}
@@ -12,10 +12,11 @@ import { DragHandleIcon } from '../../../icons/DragHandle/index.js';
12
12
  import { EditIcon } from '../../../icons/Edit/index.js';
13
13
  import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
14
14
  export const DraggableFileDetails = props => {
15
- const $ = _c(19);
15
+ const $ = _c(20);
16
16
  const {
17
17
  collectionSlug,
18
18
  doc,
19
+ hideRemoveFile,
19
20
  imageCacheTag,
20
21
  isSortable,
21
22
  removeItem,
@@ -42,7 +43,7 @@ export const DraggableFileDetails = props => {
42
43
  }
43
44
  const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer(t0);
44
45
  let t1;
45
- if ($[3] !== DocumentDrawer || $[4] !== DocumentDrawerToggler || $[5] !== collectionSlug || $[6] !== doc || $[7] !== filename || $[8] !== imageCacheTag || $[9] !== isSortable || $[10] !== removeItem || $[11] !== rowIndex || $[12] !== thumbnailURL || $[13] !== uploadConfig || $[14] !== url) {
46
+ if ($[3] !== DocumentDrawer || $[4] !== DocumentDrawerToggler || $[5] !== collectionSlug || $[6] !== doc || $[7] !== filename || $[8] !== hideRemoveFile || $[9] !== imageCacheTag || $[10] !== isSortable || $[11] !== removeItem || $[12] !== rowIndex || $[13] !== thumbnailURL || $[14] !== uploadConfig || $[15] !== url) {
46
47
  t1 = draggableSortableItemProps => _jsxs("div", {
47
48
  className: [baseClass, draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`].filter(Boolean).join(" "),
48
49
  ref: draggableSortableItemProps.setNodeRef,
@@ -73,7 +74,7 @@ export const DraggableFileDetails = props => {
73
74
  className: `${baseClass}__actions`,
74
75
  children: [_jsx(DocumentDrawer, {}), _jsx(DocumentDrawerToggler, {
75
76
  children: _jsx(EditIcon, {})
76
- }), removeItem && _jsx(Button, {
77
+ }), !hideRemoveFile && removeItem && _jsx(Button, {
77
78
  buttonStyle: "icon-label",
78
79
  className: `${baseClass}__remove`,
79
80
  icon: "x",
@@ -88,28 +89,29 @@ export const DraggableFileDetails = props => {
88
89
  $[5] = collectionSlug;
89
90
  $[6] = doc;
90
91
  $[7] = filename;
91
- $[8] = imageCacheTag;
92
- $[9] = isSortable;
93
- $[10] = removeItem;
94
- $[11] = rowIndex;
95
- $[12] = thumbnailURL;
96
- $[13] = uploadConfig;
97
- $[14] = url;
98
- $[15] = t1;
92
+ $[8] = hideRemoveFile;
93
+ $[9] = imageCacheTag;
94
+ $[10] = isSortable;
95
+ $[11] = removeItem;
96
+ $[12] = rowIndex;
97
+ $[13] = thumbnailURL;
98
+ $[14] = uploadConfig;
99
+ $[15] = url;
100
+ $[16] = t1;
99
101
  } else {
100
- t1 = $[15];
102
+ t1 = $[16];
101
103
  }
102
104
  let t2;
103
- if ($[16] !== id || $[17] !== t1) {
105
+ if ($[17] !== id || $[18] !== t1) {
104
106
  t2 = _jsx(DraggableSortableItem, {
105
107
  id,
106
108
  children: t1
107
109
  }, id);
108
- $[16] = id;
109
- $[17] = t1;
110
- $[18] = t2;
110
+ $[17] = id;
111
+ $[18] = t1;
112
+ $[19] = t2;
111
113
  } else {
112
- t2 = $[18];
114
+ t2 = $[19];
113
115
  }
114
116
  return t2;
115
117
  };