@payloadcms/ui 3.18.0-canary.707517e → 3.18.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 (122) hide show
  1. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  4. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/index.js +4 -2
  8. package/dist/elements/BulkUpload/index.js.map +1 -1
  9. package/dist/elements/DeleteDocument/index.js.map +1 -1
  10. package/dist/elements/DocumentControls/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
  13. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  15. package/dist/elements/EditMany/DrawerContent.d.ts +9 -0
  16. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -0
  17. package/dist/elements/EditMany/DrawerContent.js +388 -0
  18. package/dist/elements/EditMany/DrawerContent.js.map +1 -0
  19. package/dist/elements/EditMany/index.d.ts +1 -0
  20. package/dist/elements/EditMany/index.d.ts.map +1 -1
  21. package/dist/elements/EditMany/index.js +53 -374
  22. package/dist/elements/EditMany/index.js.map +1 -1
  23. package/dist/elements/ListDrawer/DrawerContent.js +6 -6
  24. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  25. package/dist/elements/Localizer/index.d.ts.map +1 -1
  26. package/dist/elements/Localizer/index.js +21 -21
  27. package/dist/elements/Localizer/index.js.map +1 -1
  28. package/dist/elements/PublishButton/index.js +79 -100
  29. package/dist/elements/PublishButton/index.js.map +1 -1
  30. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  31. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  32. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  33. package/dist/elements/RelationshipTable/index.js +0 -2
  34. package/dist/elements/RelationshipTable/index.js.map +1 -1
  35. package/dist/elements/SortColumn/index.scss +0 -1
  36. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
  37. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  38. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  39. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
  40. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  41. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  42. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  43. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
  44. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  45. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  46. package/dist/elements/Table/DefaultCell/index.js +33 -40
  47. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  48. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  49. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
  50. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  51. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  52. package/dist/elements/TableColumns/buildColumnState.js +30 -11
  53. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  54. package/dist/elements/TableColumns/index.js.map +1 -1
  55. package/dist/elements/Upload/index.d.ts.map +1 -1
  56. package/dist/elements/Upload/index.js +72 -33
  57. package/dist/elements/Upload/index.js.map +1 -1
  58. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  59. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
  60. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  61. package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
  62. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  63. package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
  64. package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
  65. package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
  66. package/dist/exports/client/index.js +22 -22
  67. package/dist/exports/client/index.js.map +4 -4
  68. package/dist/exports/shared/index.js +2 -2
  69. package/dist/exports/shared/index.js.map +3 -3
  70. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  71. package/dist/fields/Blocks/BlockRow.js +32 -47
  72. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  73. package/dist/fields/Blocks/index.js +3 -2
  74. package/dist/fields/Blocks/index.js.map +1 -1
  75. package/dist/fields/Join/index.d.ts.map +1 -1
  76. package/dist/fields/Join/index.js +5 -5
  77. package/dist/fields/Join/index.js.map +1 -1
  78. package/dist/fields/Relationship/index.d.ts.map +1 -1
  79. package/dist/fields/Relationship/index.js +14 -8
  80. package/dist/fields/Relationship/index.js.map +1 -1
  81. package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
  82. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  83. package/dist/forms/Form/reduceToSerializableFields.js +15 -12
  84. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  85. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  86. package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
  87. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  88. package/dist/providers/Config/index.d.ts +22 -13
  89. package/dist/providers/Config/index.d.ts.map +1 -1
  90. package/dist/providers/Config/index.js +45 -61
  91. package/dist/providers/Config/index.js.map +1 -1
  92. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  93. package/dist/providers/DocumentInfo/index.js.map +1 -1
  94. package/dist/providers/ListQuery/index.d.ts +1 -1
  95. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  96. package/dist/providers/ListQuery/index.js +3 -8
  97. package/dist/providers/ListQuery/index.js.map +1 -1
  98. package/dist/providers/Locale/index.d.ts.map +1 -1
  99. package/dist/providers/Locale/index.js +62 -54
  100. package/dist/providers/Locale/index.js.map +1 -1
  101. package/dist/scss/toasts.scss +2 -0
  102. package/dist/styles.css +1 -1
  103. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  104. package/dist/utilities/handleFormStateLocking.js +3 -3
  105. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  106. package/dist/utilities/isURLAllowed.d.ts +3 -0
  107. package/dist/utilities/isURLAllowed.d.ts.map +1 -0
  108. package/dist/utilities/isURLAllowed.js +31 -0
  109. package/dist/utilities/isURLAllowed.js.map +1 -0
  110. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  111. package/dist/views/Edit/Auth/APIKey.js +4 -3
  112. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  113. package/dist/views/Edit/index.d.ts.map +1 -1
  114. package/dist/views/Edit/index.js.map +1 -1
  115. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  116. package/dist/views/List/ListHeader/index.js +5 -4
  117. package/dist/views/List/ListHeader/index.js.map +1 -1
  118. package/dist/views/List/index.d.ts.map +1 -1
  119. package/dist/views/List/index.js.map +1 -1
  120. package/package.json +6 -6
  121. package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
  122. /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
@@ -2,406 +2,85 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { useModal } from '@faceless-ui/modal';
6
- import { getTranslation } from '@payloadcms/translations';
7
- import { useRouter, useSearchParams } from 'next/navigation.js';
8
- import * as qs from 'qs-esm';
9
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
10
- import { useForm } from '../../forms/Form/context.js';
11
- import { Form } from '../../forms/Form/index.js';
12
- import { RenderFields } from '../../forms/RenderFields/index.js';
13
- import { FormSubmit } from '../../forms/Submit/index.js';
14
- import { XIcon } from '../../icons/X/index.js';
5
+ import React, { useState } from 'react';
15
6
  import { useAuth } from '../../providers/Auth/index.js';
16
- import { useConfig } from '../../providers/Config/index.js';
17
- import { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js';
18
7
  import { EditDepthProvider } from '../../providers/EditDepth/index.js';
19
- import { OperationContext } from '../../providers/Operation/index.js';
20
- import { useRouteCache } from '../../providers/RouteCache/index.js';
21
8
  import { SelectAllStatus, useSelection } from '../../providers/Selection/index.js';
22
- import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
23
9
  import { useTranslation } from '../../providers/Translation/index.js';
24
- import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
25
- import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
26
- import { parseSearchParams } from '../../utilities/parseSearchParams.js';
27
10
  import './index.scss';
28
11
  import { Drawer, DrawerToggler } from '../Drawer/index.js';
29
- import { FieldSelect } from '../FieldSelect/index.js';
30
- const baseClass = 'edit-many';
31
- const sanitizeUnselectedFields = (formState, selected) => {
32
- const filteredData = selected.reduce((acc, field) => {
33
- const foundState = formState?.[field.path];
34
- if (foundState) {
35
- acc[field.path] = formState?.[field.path]?.value;
36
- }
37
- return acc;
38
- }, {});
39
- return filteredData;
40
- };
41
- const Submit = t0 => {
42
- const $ = _c(8);
43
- const {
44
- action,
45
- disabled,
46
- selected
47
- } = t0;
48
- const {
49
- submit
50
- } = useForm();
51
- const {
52
- t
53
- } = useTranslation();
54
- let t1;
55
- if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
56
- t1 = () => {
57
- submit({
58
- action,
59
- method: "PATCH",
60
- overrides: formState => sanitizeUnselectedFields(formState, selected),
61
- skipValidation: true
62
- });
63
- };
64
- $[0] = action;
65
- $[1] = selected;
66
- $[2] = submit;
67
- $[3] = t1;
68
- } else {
69
- t1 = $[3];
70
- }
71
- const save = t1;
72
- let t2;
73
- if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
74
- t2 = _jsx(FormSubmit, {
75
- className: `${baseClass}__save`,
76
- disabled,
77
- onClick: save,
78
- children: t("general:save")
79
- });
80
- $[4] = disabled;
81
- $[5] = save;
82
- $[6] = t;
83
- $[7] = t2;
84
- } else {
85
- t2 = $[7];
86
- }
87
- return t2;
88
- };
89
- const PublishButton = t0 => {
90
- const $ = _c(8);
91
- const {
92
- action,
93
- disabled,
94
- selected
95
- } = t0;
96
- const {
97
- submit
98
- } = useForm();
99
- const {
100
- t
101
- } = useTranslation();
102
- let t1;
103
- if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
104
- t1 = () => {
105
- submit({
106
- action,
107
- method: "PATCH",
108
- overrides: formState => ({
109
- ...sanitizeUnselectedFields(formState, selected),
110
- _status: "published"
111
- }),
112
- skipValidation: true
113
- });
114
- };
115
- $[0] = action;
116
- $[1] = selected;
117
- $[2] = submit;
118
- $[3] = t1;
119
- } else {
120
- t1 = $[3];
121
- }
122
- const save = t1;
123
- let t2;
124
- if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
125
- t2 = _jsx(FormSubmit, {
126
- className: `${baseClass}__publish`,
127
- disabled,
128
- onClick: save,
129
- children: t("version:publishChanges")
130
- });
131
- $[4] = disabled;
132
- $[5] = save;
133
- $[6] = t;
134
- $[7] = t2;
135
- } else {
136
- t2 = $[7];
137
- }
138
- return t2;
139
- };
140
- const SaveDraftButton = t0 => {
141
- const $ = _c(8);
142
- const {
143
- action,
144
- disabled,
145
- selected
146
- } = t0;
147
- const {
148
- submit
149
- } = useForm();
150
- const {
151
- t
152
- } = useTranslation();
153
- let t1;
154
- if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
155
- t1 = () => {
156
- submit({
157
- action,
158
- method: "PATCH",
159
- overrides: formState => ({
160
- ...sanitizeUnselectedFields(formState, selected),
161
- _status: "draft"
162
- }),
163
- skipValidation: true
164
- });
165
- };
166
- $[0] = action;
167
- $[1] = selected;
168
- $[2] = submit;
169
- $[3] = t1;
170
- } else {
171
- t1 = $[3];
172
- }
173
- const save = t1;
174
- let t2;
175
- if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
176
- t2 = _jsx(FormSubmit, {
177
- buttonStyle: "secondary",
178
- className: `${baseClass}__draft`,
179
- disabled,
180
- onClick: save,
181
- children: t("version:saveDraft")
182
- });
183
- $[4] = disabled;
184
- $[5] = save;
185
- $[6] = t;
186
- $[7] = t2;
187
- } else {
188
- t2 = $[7];
189
- }
190
- return t2;
191
- };
12
+ import { EditManyDrawerContent } from './DrawerContent.js';
13
+ export const baseClass = 'edit-many';
192
14
  export const EditMany = props => {
15
+ const $ = _c(7);
193
16
  const {
194
- collection: {
195
- slug,
196
- fields,
197
- labels: {
198
- plural
199
- }
200
- } = {},
201
- collection
17
+ collection: t0
202
18
  } = props;
203
19
  const {
204
- permissions,
205
- user
206
- } = useAuth();
207
- const {
208
- closeModal
209
- } = useModal();
210
- const {
211
- config: {
212
- routes: {
213
- api: apiRoute
214
- },
215
- serverURL
216
- }
217
- } = useConfig();
20
+ slug
21
+ } = t0;
218
22
  const {
219
- getFormState
220
- } = useServerFunctions();
23
+ permissions
24
+ } = useAuth();
221
25
  const {
222
- count,
223
- getQueryParams,
224
26
  selectAll
225
27
  } = useSelection();
226
28
  const {
227
- i18n,
228
29
  t
229
30
  } = useTranslation();
230
- const [selected, setSelected] = useState([]);
231
- const searchParams = useSearchParams();
232
- const router = useRouter();
233
- const [initialState, setInitialState] = useState();
234
- const hasInitializedState = React.useRef(false);
235
- const abortFormStateRef = React.useRef(null);
236
- const {
237
- clearRouteCache
238
- } = useRouteCache();
31
+ let t1;
32
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
33
+ t1 = [];
34
+ $[0] = t1;
35
+ } else {
36
+ t1 = $[0];
37
+ }
38
+ const [selected, setSelected] = useState(t1);
239
39
  const collectionPermissions = permissions?.collections?.[slug];
240
40
  const hasUpdatePermission = collectionPermissions?.update;
241
41
  const drawerSlug = `edit-${slug}`;
242
- React.useEffect(() => {
243
- const controller = new AbortController();
244
- if (!hasInitializedState.current) {
245
- const getInitialState = async () => {
246
- const {
247
- state: result
248
- } = await getFormState({
249
- collectionSlug: slug,
250
- data: {},
251
- docPermissions: collectionPermissions,
252
- docPreferences: null,
253
- operation: 'update',
254
- schemaPath: slug,
255
- signal: controller.signal
256
- });
257
- setInitialState(result);
258
- hasInitializedState.current = true;
259
- };
260
- void getInitialState();
261
- }
262
- return () => {
263
- abortAndIgnore(controller);
264
- };
265
- }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions]);
266
- const onChange = useCallback(async ({
267
- formState: prevFormState
268
- }) => {
269
- const controller_0 = handleAbortRef(abortFormStateRef);
270
- const {
271
- state
272
- } = await getFormState({
273
- collectionSlug: slug,
274
- docPermissions: collectionPermissions,
275
- docPreferences: null,
276
- formState: prevFormState,
277
- operation: 'update',
278
- schemaPath: slug,
279
- signal: controller_0.signal
280
- });
281
- abortFormStateRef.current = null;
282
- return state;
283
- }, [getFormState, slug, collectionPermissions]);
284
- useEffect(() => {
285
- const abortFormState = abortFormStateRef.current;
286
- return () => {
287
- abortAndIgnore(abortFormState);
288
- };
289
- }, []);
290
- const queryString = useMemo(() => {
291
- const queryWithSearch = mergeListSearchAndWhere({
292
- collectionConfig: collection,
293
- search: searchParams.get('search')
294
- });
295
- return getQueryParams(queryWithSearch);
296
- }, [collection, searchParams, getQueryParams]);
297
- const onSuccess = () => {
298
- router.replace(qs.stringify({
299
- ...parseSearchParams(searchParams),
300
- page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined
301
- }, {
302
- addQueryPrefix: true
303
- }));
304
- clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this
305
- ;
306
- closeModal(drawerSlug);
307
- };
308
42
  if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {
309
43
  return null;
310
44
  }
311
- return /*#__PURE__*/_jsxs("div", {
312
- className: baseClass,
313
- children: [/*#__PURE__*/_jsx(DrawerToggler, {
314
- "aria-label": t('general:edit'),
315
- className: `${baseClass}__toggle`,
316
- onClick: () => {
45
+ let t2;
46
+ if ($[1] !== drawerSlug || $[2] !== props.collection || $[3] !== selected || $[4] !== t) {
47
+ let t3;
48
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
49
+ t3 = () => {
317
50
  setSelected([]);
318
- },
319
- slug: drawerSlug,
320
- children: t('general:edit')
321
- }), /*#__PURE__*/_jsx(EditDepthProvider, {
322
- children: /*#__PURE__*/_jsx(Drawer, {
323
- Header: null,
51
+ };
52
+ $[6] = t3;
53
+ } else {
54
+ t3 = $[6];
55
+ }
56
+ t2 = _jsxs("div", {
57
+ className: baseClass,
58
+ children: [_jsx(DrawerToggler, {
59
+ "aria-label": t("general:edit"),
60
+ className: `${baseClass}__toggle`,
61
+ onClick: t3,
324
62
  slug: drawerSlug,
325
- children: /*#__PURE__*/_jsx(DocumentInfoProvider, {
326
- collectionSlug: slug,
327
- currentEditor: user,
328
- hasPublishedDoc: false,
329
- id: null,
330
- initialData: {},
331
- initialState: initialState,
332
- isLocked: false,
333
- lastUpdateTime: 0,
334
- mostRecentVersionIsAutosaved: false,
335
- unpublishedVersionCount: 0,
336
- versionCount: 0,
337
- children: /*#__PURE__*/_jsx(OperationContext.Provider, {
338
- value: "update",
339
- children: /*#__PURE__*/_jsxs("div", {
340
- className: `${baseClass}__main`,
341
- children: [/*#__PURE__*/_jsxs("div", {
342
- className: `${baseClass}__header`,
343
- children: [/*#__PURE__*/_jsx("h2", {
344
- className: `${baseClass}__header__title`,
345
- children: t('general:editingLabel', {
346
- count,
347
- label: getTranslation(plural, i18n)
348
- })
349
- }), /*#__PURE__*/_jsx("button", {
350
- "aria-label": t('general:close'),
351
- className: `${baseClass}__header__close`,
352
- id: `close-drawer__${drawerSlug}`,
353
- onClick: () => closeModal(drawerSlug),
354
- type: "button",
355
- children: /*#__PURE__*/_jsx(XIcon, {})
356
- })]
357
- }), /*#__PURE__*/_jsxs(Form, {
358
- className: `${baseClass}__form`,
359
- initialState: initialState,
360
- onChange: [onChange],
361
- onSuccess: onSuccess,
362
- children: [/*#__PURE__*/_jsx(FieldSelect, {
363
- fields: fields,
364
- setSelected: setSelected
365
- }), selected.length === 0 ? null : /*#__PURE__*/_jsx(RenderFields, {
366
- fields: selected,
367
- parentIndexPath: "",
368
- parentPath: "",
369
- parentSchemaPath: slug,
370
- permissions: collectionPermissions?.fields,
371
- readOnly: false
372
- }), /*#__PURE__*/_jsx("div", {
373
- className: `${baseClass}__sidebar-wrap`,
374
- children: /*#__PURE__*/_jsx("div", {
375
- className: `${baseClass}__sidebar`,
376
- children: /*#__PURE__*/_jsx("div", {
377
- className: `${baseClass}__sidebar-sticky-wrap`,
378
- children: /*#__PURE__*/_jsx("div", {
379
- className: `${baseClass}__document-actions`,
380
- children: collection?.versions?.drafts ? /*#__PURE__*/_jsxs(React.Fragment, {
381
- children: [/*#__PURE__*/_jsx(SaveDraftButton, {
382
- action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
383
- disabled: selected.length === 0,
384
- selected: selected
385
- }), /*#__PURE__*/_jsx(PublishButton, {
386
- action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
387
- disabled: selected.length === 0,
388
- selected: selected
389
- })]
390
- }) : /*#__PURE__*/_jsx(Submit, {
391
- action: `${serverURL}${apiRoute}/${slug}${queryString}`,
392
- disabled: selected.length === 0,
393
- selected: selected
394
- })
395
- })
396
- })
397
- })
398
- })]
399
- })]
400
- })
63
+ children: t("general:edit")
64
+ }), _jsx(EditDepthProvider, {
65
+ children: _jsx(Drawer, {
66
+ Header: null,
67
+ slug: drawerSlug,
68
+ children: _jsx(EditManyDrawerContent, {
69
+ collection: props.collection,
70
+ drawerSlug,
71
+ selected
401
72
  })
402
73
  })
403
- })
404
- })]
405
- });
74
+ })]
75
+ });
76
+ $[1] = drawerSlug;
77
+ $[2] = props.collection;
78
+ $[3] = selected;
79
+ $[4] = t;
80
+ $[5] = t2;
81
+ } else {
82
+ t2 = $[5];
83
+ }
84
+ return t2;
406
85
  };
407
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","EditDepthProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","mergeListSearchAndWhere","parseSearchParams","Drawer","DrawerToggler","FieldSelect","baseClass","sanitizeUnselectedFields","formState","selected","filteredData","reduce","acc","field","foundState","path","value","Submit","t0","$","action","disabled","submit","t","t1","method","overrides","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","_status","SaveDraftButton","buttonStyle","EditMany","props","collection","slug","fields","labels","plural","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","setSelected","searchParams","router","initialState","setInitialState","hasInitializedState","useRef","abortFormStateRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","controller","AbortController","current","getInitialState","state","result","collectionSlug","data","docPermissions","docPreferences","operation","schemaPath","signal","onChange","prevFormState","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","None","_jsxs","Header","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","Provider","label","type","length","parentIndexPath","parentPath","parentSchemaPath","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient, FormState } 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, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport './index.scss'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\n\nconst baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nconst sanitizeUnselectedFields = (formState: FormState, selected: FieldWithPathClient[]) => {\n const filteredData = selected.reduce((acc, field) => {\n const foundState = formState?.[field.path]\n\n if (foundState) {\n acc[field.path] = formState?.[field.path]?.value\n }\n\n return acc\n }, {} as FormData)\n\n return filteredData\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n readonly selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => sanitizeUnselectedFields(formState, selected),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'published',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'draft',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, fields, labels: { plural } } = {}, collection } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n const searchParams = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n const controller = new AbortController()\n\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const { state: result } = await getFormState({\n collectionSlug: slug,\n data: {},\n docPermissions: collectionPermissions,\n docPreferences: null,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, slug, collectionPermissions],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider\n collectionSlug={slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n initialState={initialState}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={fields} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields\n fields={selected}\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={slug}\n permissions={collectionPermissions?.fields}\n readOnly={false}\n />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${queryString}`}\n disabled={selected.length === 0}\n selected={selected}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","DrawerToggler","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","selectAll","t","t1","Symbol","for","selected","setSelected","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","None","t2","t3","_jsxs","className","children","_jsx","onClick","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selected={selected}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,OAAO;AACP,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBf,OAAA;EAExB;IAAAgB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAP,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IACkDF,EAAA;IAAEP,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAlE,OAAAU,QAAA,EAAAC,WAAA,IAAgCvB,QAAA,CAAgCmB,EAAE;EAElE,MAAAK,qBAAA,GAA8BR,WAAA,EAAAS,WAAA,GAA2BV,IAAA;EACzD,MAAAW,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQb,IAAA,EAAM;EAAA,IAE7BE,SAAA,KAAAd,eAAA,CAAA0B,IAAkC,KAAKH,mBAAA;IAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAU,QAAA,IAAAV,CAAA,QAAAM,CAAA;IAAA,IAAAa,EAAA;IAAA,IAAAnB,CAAA,QAAAQ,MAAA,CAAAC,GAAA;MAS5BU,EAAA,GAAAA,CAAA;QACPR,WAAA,GAAc;MAAA;MAChBX,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IANJkB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAxB,SAAA;MAAAyB,QAAA,GACCC,IAAA,CAAA5B,aAAA;QAAA,cACcW,CAAA,CAAE;QAAAe,SAAA,EACH,GAAAxB,SAAA,UAAsB;QAAA2B,OAAA,EACxBL,EAET;QAAAhB,IAAA,EACMa,UAAA;QAAAM,QAAA,EAELhB,CAAA,CAAE;MAAA,C,GAELiB,IAAA,CAAAjC,iBAAA;QAAAgC,QAAA,EACEC,IAAA,CAAA7B,MAAA;UAAA+B,MAAA;UAAAtB,IAAA,EAA4Ba,UAAA;UAAAM,QAAA,EAC1BC,IAAA,CAAA3B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAe,UAAA;YAAAN;UAAA,C;;;;;;;;;;;;SAdpBQ,E;CAsBJ","ignoreList":[]}
@@ -60,14 +60,14 @@ export const ListDrawerContent = ({
60
60
  useIgnoredEffect(() => {
61
61
  if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {
62
62
  setSelectedOption({
63
- label: collections.find(({
64
- slug: slug_0
65
- }) => slug_0 === selectedCollectionFromProps).labels,
63
+ label: getEntityConfig({
64
+ collectionSlug: selectedCollectionFromProps
65
+ })?.labels,
66
66
  value: selectedCollectionFromProps
67
67
  });
68
68
  }
69
69
  }, [selectedCollectionFromProps], [collections, selectedOption]);
70
- const renderList = useCallback(async (slug_1, query) => {
70
+ const renderList = useCallback(async (slug_0, query) => {
71
71
  try {
72
72
  const newQuery = {
73
73
  ...(query || {}),
@@ -75,7 +75,7 @@ export const ListDrawerContent = ({
75
75
  ...(query?.where || {})
76
76
  }
77
77
  };
78
- const filterOption = filterOptions?.[slug_1];
78
+ const filterOption = filterOptions?.[slug_0];
79
79
  if (filterOptions && typeof filterOption !== 'boolean') {
80
80
  newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption);
81
81
  }
@@ -84,7 +84,7 @@ export const ListDrawerContent = ({
84
84
  } = await serverFunction({
85
85
  name: 'render-list',
86
86
  args: {
87
- collectionSlug: slug_1,
87
+ collectionSlug: slug_0,
88
88
  disableBulkDelete: true,
89
89
  disableBulkEdit: true,
90
90
  drawerSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useState","useDocumentDrawer","useIgnoredEffect","useConfig","useServerFunctions","hoistQueryParamsToAnd","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","find","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection }) as ClientCollectionConfig\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n useIgnoredEffect(\n () => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: collections.find(({ slug }) => slug === selectedCollectionFromProps).labels,\n value: selectedCollectionFromProps,\n })\n }\n },\n [selectedCollectionFromProps],\n [collections, selectedOption],\n )\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useState","useDocumentDrawer","useIgnoredEffect","useConfig","useServerFunctions","hoistQueryParamsToAnd","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","selectedCollectionFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","renderList","query","newQuery","where","filterOption","List","ViewResult","name","args","disableBulkDelete","disableBulkEdit","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: selectedCollectionFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = selectedCollectionFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n useIgnoredEffect(\n () => {\n if (selectedCollectionFromProps && selectedCollectionFromProps !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: selectedCollectionFromProps })?.labels,\n value: selectedCollectionFromProps,\n })\n }\n },\n [selectedCollectionFromProps],\n [collections, selectedOption],\n )\n\n const renderList = useCallback(\n async (slug: string, query?: ListQuery) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n const { List: ViewResult } = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n },\n })) as { List: React.ReactNode }\n\n setListView(ViewResult)\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void renderList(selectedOption.value)\n }\n }, [renderList, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption.value,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange = useCallback(\n (query: ListQuery) => {\n void renderList(selectedOption.value, query)\n },\n [renderList, selectedOption.value],\n )\n\n const setMySelectedOption = useCallback(\n (incomingSelection: Option<string>) => {\n setSelectedOption(incomingSelection)\n void renderList(incomingSelection.value)\n },\n [renderList],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Localizer/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAgEA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Localizer/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAiEA,CAAA"}