@payloadcms/ui 3.0.0-beta.90 → 3.0.0-beta.91

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 (64) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +1 -1
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.scss +14 -4
  5. package/dist/elements/AppHeader/index.js +41 -80
  6. package/dist/elements/AppHeader/index.js.map +1 -1
  7. package/dist/elements/Autosave/index.js +148 -231
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.js +86 -218
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.js +44 -62
  12. package/dist/elements/Collapsible/index.js.map +1 -1
  13. package/dist/elements/Collapsible/index.scss +15 -28
  14. package/dist/elements/CopyToClipboard/index.js +20 -54
  15. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  16. package/dist/elements/Dropzone/index.js +59 -119
  17. package/dist/elements/Dropzone/index.js.map +1 -1
  18. package/dist/elements/EditMany/index.js +124 -230
  19. package/dist/elements/EditMany/index.js.map +1 -1
  20. package/dist/elements/EditUpload/index.js +133 -206
  21. package/dist/elements/EditUpload/index.js.map +1 -1
  22. package/dist/elements/ListControls/index.js +82 -188
  23. package/dist/elements/ListControls/index.js.map +1 -1
  24. package/dist/elements/Nav/context.js +47 -83
  25. package/dist/elements/Nav/context.js.map +1 -1
  26. package/dist/elements/SaveButton/index.js +30 -81
  27. package/dist/elements/SaveButton/index.js.map +1 -1
  28. package/dist/elements/SaveDraftButton/index.js +54 -116
  29. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  30. package/dist/elements/SearchFilter/index.js +21 -77
  31. package/dist/elements/SearchFilter/index.js.map +1 -1
  32. package/dist/elements/Upload/index.js +130 -280
  33. package/dist/elements/Upload/index.js.map +1 -1
  34. package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
  35. package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
  36. package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
  37. package/dist/exports/client/index.d.ts +1 -1
  38. package/dist/exports/client/index.d.ts.map +1 -1
  39. package/dist/exports/client/index.js +19 -19
  40. package/dist/exports/client/index.js.map +3 -3
  41. package/dist/fields/Relationship/index.js +318 -504
  42. package/dist/fields/Relationship/index.js.map +1 -1
  43. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  44. package/dist/fields/Upload/HasMany/index.js +192 -422
  45. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  46. package/dist/fields/Upload/HasMany/index.scss +19 -1
  47. package/dist/forms/Submit/index.js +12 -28
  48. package/dist/forms/Submit/index.js.map +1 -1
  49. package/dist/hooks/useDelay.js +15 -48
  50. package/dist/hooks/useDelay.js.map +1 -1
  51. package/dist/hooks/useDelayedRender.js +32 -71
  52. package/dist/hooks/useDelayedRender.js.map +1 -1
  53. package/dist/hooks/useIntersect.js +14 -20
  54. package/dist/hooks/useIntersect.js.map +1 -1
  55. package/dist/providers/Preferences/index.js +1 -3
  56. package/dist/providers/Preferences/index.js.map +1 -1
  57. package/dist/providers/Selection/index.js +102 -190
  58. package/dist/providers/Selection/index.js.map +1 -1
  59. package/dist/scss/app.scss +6 -6
  60. package/dist/scss/type.scss +4 -4
  61. package/dist/styles.css +1 -1
  62. package/package.json +8 -8
  63. package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
  64. /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
@@ -166,27 +166,16 @@ const SaveDraftButton = t0 => {
166
166
  return t2;
167
167
  };
168
168
  export const EditMany = props => {
169
- const $ = _c(44);
170
169
  const {
171
- collection: t0,
170
+ collection: {
171
+ slug,
172
+ labels: {
173
+ plural
174
+ }
175
+ } = {},
172
176
  collection,
173
177
  fields
174
178
  } = props;
175
- let t1;
176
- if ($[0] !== t0) {
177
- t1 = t0 === undefined ? {} : t0;
178
- $[0] = t0;
179
- $[1] = t1;
180
- } else {
181
- t1 = $[1];
182
- }
183
- const {
184
- slug,
185
- labels: t2
186
- } = t1;
187
- const {
188
- plural
189
- } = t2;
190
179
  const {
191
180
  permissions
192
181
  } = useAuth();
@@ -194,15 +183,13 @@ export const EditMany = props => {
194
183
  closeModal
195
184
  } = useModal();
196
185
  const {
197
- config: t3
186
+ config: {
187
+ routes: {
188
+ api: apiRoute
189
+ },
190
+ serverURL
191
+ }
198
192
  } = useConfig();
199
- const {
200
- routes: t4,
201
- serverURL
202
- } = t3;
203
- const {
204
- api: apiRoute
205
- } = t4;
206
193
  const {
207
194
  count,
208
195
  getQueryParams,
@@ -212,14 +199,7 @@ export const EditMany = props => {
212
199
  i18n,
213
200
  t
214
201
  } = useTranslation();
215
- let t5;
216
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
217
- t5 = [];
218
- $[2] = t5;
219
- } else {
220
- t5 = $[2];
221
- }
222
- const [selected, setSelected] = useState(t5);
202
+ const [selected, setSelected] = useState([]);
223
203
  const {
224
204
  stringifyParams
225
205
  } = useSearchParams();
@@ -232,213 +212,127 @@ export const EditMany = props => {
232
212
  const collectionPermissions = permissions?.collections?.[slug];
233
213
  const hasUpdatePermission = collectionPermissions?.update?.permission;
234
214
  const drawerSlug = `edit-${slug}`;
235
- let t6;
236
- if ($[3] !== apiRoute || $[4] !== slug || $[5] !== serverURL) {
237
- t6 = () => {
238
- if (!hasInitializedState.current) {
239
- const getInitialState = async () => {
240
- const result = await getFormState({
241
- apiRoute,
242
- body: {
243
- collectionSlug: slug,
244
- data: {},
245
- operation: "update",
246
- schemaPath: slug
247
- },
248
- serverURL
249
- });
250
- setInitialState(result);
251
- hasInitializedState.current = true;
252
- };
253
- getInitialState();
254
- }
255
- };
256
- $[3] = apiRoute;
257
- $[4] = slug;
258
- $[5] = serverURL;
259
- $[6] = t6;
260
- } else {
261
- t6 = $[6];
262
- }
263
- let t7;
264
- if ($[7] !== apiRoute || $[8] !== hasInitializedState || $[9] !== serverURL || $[10] !== slug) {
265
- t7 = [apiRoute, hasInitializedState, serverURL, slug];
266
- $[7] = apiRoute;
267
- $[8] = hasInitializedState;
268
- $[9] = serverURL;
269
- $[10] = slug;
270
- $[11] = t7;
271
- } else {
272
- t7 = $[11];
273
- }
274
- React.useEffect(t6, t7);
275
- let t8;
276
- if ($[12] !== apiRoute || $[13] !== slug || $[14] !== serverURL) {
277
- t8 = t9 => {
278
- const {
279
- formState: prevFormState
280
- } = t9;
281
- return getFormState({
282
- apiRoute,
283
- body: {
284
- collectionSlug: slug,
285
- formState: prevFormState,
286
- operation: "update",
287
- schemaPath: slug
288
- },
289
- serverURL
290
- });
291
- };
292
- $[12] = apiRoute;
293
- $[13] = slug;
294
- $[14] = serverURL;
295
- $[15] = t8;
296
- } else {
297
- t8 = $[15];
298
- }
299
- const onChange = t8;
215
+ React.useEffect(() => {
216
+ if (!hasInitializedState.current) {
217
+ const getInitialState = async () => {
218
+ const result = await getFormState({
219
+ apiRoute,
220
+ body: {
221
+ collectionSlug: slug,
222
+ data: {},
223
+ operation: 'update',
224
+ schemaPath: slug
225
+ },
226
+ serverURL
227
+ });
228
+ setInitialState(result);
229
+ hasInitializedState.current = true;
230
+ };
231
+ void getInitialState();
232
+ }
233
+ }, [apiRoute, hasInitializedState, serverURL, slug]);
234
+ const onChange = useCallback(({
235
+ formState: prevFormState
236
+ }) => getFormState({
237
+ apiRoute,
238
+ body: {
239
+ collectionSlug: slug,
240
+ formState: prevFormState,
241
+ operation: 'update',
242
+ schemaPath: slug
243
+ },
244
+ serverURL
245
+ }), [serverURL, apiRoute, slug]);
300
246
  if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {
301
247
  return null;
302
248
  }
303
- let t9;
304
- if ($[16] !== router || $[17] !== stringifyParams || $[18] !== selectAll || $[19] !== clearRouteCache || $[20] !== closeModal || $[21] !== drawerSlug) {
305
- t9 = () => {
306
- router.replace(stringifyParams({
307
- params: {
308
- page: selectAll === SelectAllStatus.AllAvailable ? "1" : undefined
309
- }
310
- }));
311
- clearRouteCache();
312
- closeModal(drawerSlug);
313
- };
314
- $[16] = router;
315
- $[17] = stringifyParams;
316
- $[18] = selectAll;
317
- $[19] = clearRouteCache;
318
- $[20] = closeModal;
319
- $[21] = drawerSlug;
320
- $[22] = t9;
321
- } else {
322
- t9 = $[22];
323
- }
324
- const onSuccess = t9;
325
- let t10;
326
- if ($[23] !== t || $[24] !== drawerSlug || $[25] !== plural || $[26] !== i18n || $[27] !== count || $[28] !== closeModal || $[29] !== onChange || $[30] !== fields || $[31] !== selected || $[32] !== slug || $[33] !== collection || $[34] !== getQueryParams || $[35] !== serverURL || $[36] !== apiRoute || $[37] !== initialState || $[38] !== onSuccess) {
327
- let t11;
328
- if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
329
- t11 = () => {
249
+ const onSuccess = () => {
250
+ router.replace(stringifyParams({
251
+ params: {
252
+ page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined
253
+ }
254
+ }));
255
+ clearRouteCache();
256
+ closeModal(drawerSlug);
257
+ };
258
+ return /*#__PURE__*/_jsxs("div", {
259
+ className: baseClass,
260
+ children: [/*#__PURE__*/_jsx(DrawerToggler, {
261
+ "aria-label": t('general:edit'),
262
+ className: `${baseClass}__toggle`,
263
+ onClick: () => {
330
264
  setSelected([]);
331
- };
332
- $[40] = t11;
333
- } else {
334
- t11 = $[40];
335
- }
336
- let t12;
337
- if ($[41] !== closeModal || $[42] !== drawerSlug) {
338
- t12 = () => closeModal(drawerSlug);
339
- $[41] = closeModal;
340
- $[42] = drawerSlug;
341
- $[43] = t12;
342
- } else {
343
- t12 = $[43];
344
- }
345
- t10 = _jsxs("div", {
346
- className: baseClass,
347
- children: [_jsx(DrawerToggler, {
348
- "aria-label": t("general:edit"),
349
- className: `${baseClass}__toggle`,
350
- onClick: t11,
351
- slug: drawerSlug,
352
- children: t("general:edit")
353
- }), _jsx(Drawer, {
354
- Header: null,
355
- slug: drawerSlug,
356
- children: _jsx(DocumentInfoProvider, {
357
- collectionSlug: slug,
358
- id: null,
359
- children: _jsx(OperationContext.Provider, {
360
- value: "update",
361
- children: _jsxs("div", {
362
- className: `${baseClass}__main`,
363
- children: [_jsxs("div", {
364
- className: `${baseClass}__header`,
365
- children: [_jsx("h2", {
366
- className: `${baseClass}__header__title`,
367
- children: t("general:editingLabel", {
368
- count,
369
- label: getTranslation(plural, i18n)
370
- })
371
- }), _jsx("button", {
372
- "aria-label": t("general:close"),
373
- className: `${baseClass}__header__close`,
374
- id: `close-drawer__${drawerSlug}`,
375
- onClick: t12,
376
- type: "button",
377
- children: _jsx(XIcon, {})
378
- })]
379
- }), _jsxs(Form, {
380
- className: `${baseClass}__form`,
381
- initialState,
382
- onChange: [onChange],
383
- onSuccess,
384
- children: [_jsx(FieldSelect, {
385
- fields,
386
- setSelected
387
- }), selected.length === 0 ? null : _jsx(RenderFields, {
388
- fields: selected,
389
- path: "",
390
- readOnly: false,
391
- schemaPath: slug
392
- }), _jsx("div", {
393
- className: `${baseClass}__sidebar-wrap`,
394
- children: _jsx("div", {
395
- className: `${baseClass}__sidebar`,
396
- children: _jsx("div", {
397
- className: `${baseClass}__sidebar-sticky-wrap`,
398
- children: _jsx("div", {
399
- className: `${baseClass}__document-actions`,
400
- children: collection?.versions?.drafts ? _jsxs(React.Fragment, {
401
- children: [_jsx(PublishButton, {
402
- action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`,
403
- disabled: selected.length === 0
404
- }), _jsx(SaveDraftButton, {
405
- action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`,
406
- disabled: selected.length === 0
407
- })]
408
- }) : _jsx(Submit, {
409
- action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}`,
265
+ },
266
+ slug: drawerSlug,
267
+ children: t('general:edit')
268
+ }), /*#__PURE__*/_jsx(Drawer, {
269
+ Header: null,
270
+ slug: drawerSlug,
271
+ children: /*#__PURE__*/_jsx(DocumentInfoProvider, {
272
+ collectionSlug: slug,
273
+ id: null,
274
+ children: /*#__PURE__*/_jsx(OperationContext.Provider, {
275
+ value: "update",
276
+ children: /*#__PURE__*/_jsxs("div", {
277
+ className: `${baseClass}__main`,
278
+ children: [/*#__PURE__*/_jsxs("div", {
279
+ className: `${baseClass}__header`,
280
+ children: [/*#__PURE__*/_jsx("h2", {
281
+ className: `${baseClass}__header__title`,
282
+ children: t('general:editingLabel', {
283
+ count,
284
+ label: getTranslation(plural, i18n)
285
+ })
286
+ }), /*#__PURE__*/_jsx("button", {
287
+ "aria-label": t('general:close'),
288
+ className: `${baseClass}__header__close`,
289
+ id: `close-drawer__${drawerSlug}`,
290
+ onClick: () => closeModal(drawerSlug),
291
+ type: "button",
292
+ children: /*#__PURE__*/_jsx(XIcon, {})
293
+ })]
294
+ }), /*#__PURE__*/_jsxs(Form, {
295
+ className: `${baseClass}__form`,
296
+ initialState: initialState,
297
+ onChange: [onChange],
298
+ onSuccess: onSuccess,
299
+ children: [/*#__PURE__*/_jsx(FieldSelect, {
300
+ fields: fields,
301
+ setSelected: setSelected
302
+ }), selected.length === 0 ? null : /*#__PURE__*/_jsx(RenderFields, {
303
+ fields: selected,
304
+ path: "",
305
+ readOnly: false,
306
+ schemaPath: slug
307
+ }), /*#__PURE__*/_jsx("div", {
308
+ className: `${baseClass}__sidebar-wrap`,
309
+ children: /*#__PURE__*/_jsx("div", {
310
+ className: `${baseClass}__sidebar`,
311
+ children: /*#__PURE__*/_jsx("div", {
312
+ className: `${baseClass}__sidebar-sticky-wrap`,
313
+ children: /*#__PURE__*/_jsx("div", {
314
+ className: `${baseClass}__document-actions`,
315
+ children: collection?.versions?.drafts ? /*#__PURE__*/_jsxs(React.Fragment, {
316
+ children: [/*#__PURE__*/_jsx(PublishButton, {
317
+ action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`,
410
318
  disabled: selected.length === 0
411
- })
319
+ }), /*#__PURE__*/_jsx(SaveDraftButton, {
320
+ action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`,
321
+ disabled: selected.length === 0
322
+ })]
323
+ }) : /*#__PURE__*/_jsx(Submit, {
324
+ action: `${serverURL}${apiRoute}/${slug}${getQueryParams()}`,
325
+ disabled: selected.length === 0
412
326
  })
413
327
  })
414
328
  })
415
- })]
329
+ })
416
330
  })]
417
- })
331
+ })]
418
332
  })
419
333
  })
420
- })]
421
- });
422
- $[23] = t;
423
- $[24] = drawerSlug;
424
- $[25] = plural;
425
- $[26] = i18n;
426
- $[27] = count;
427
- $[28] = closeModal;
428
- $[29] = onChange;
429
- $[30] = fields;
430
- $[31] = selected;
431
- $[32] = slug;
432
- $[33] = collection;
433
- $[34] = getQueryParams;
434
- $[35] = serverURL;
435
- $[36] = apiRoute;
436
- $[37] = initialState;
437
- $[38] = onSuccess;
438
- $[39] = t10;
439
- } else {
440
- t10 = $[39];
441
- }
442
- return t10;
334
+ })
335
+ })]
336
+ });
443
337
  };
444
338
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","EditMany","props","collection","fields","undefined","slug","labels","plural","permissions","closeModal","config","t3","routes","t4","serverURL","api","apiRoute","count","getQueryParams","selectAll","i18n","t5","Symbol","for","selected","setSelected","stringifyParams","router","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","t6","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","t7","useEffect","t8","t9","formState","prevFormState","onChange","None","replace","params","page","AllAvailable","onSuccess","t10","t11","t12","_jsxs","Header","id","Provider","value","label","type","length","path","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, 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 { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n readonly fields: ClientField[]\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\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<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\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<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, labels: { plural } } = {}, collection, fields } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\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 <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\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 fields={selected} path=\"\" readOnly={false} schemaPath={slug} />\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 <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","EditMany","props","collection","slug","labels","plural","fields","permissions","closeModal","config","routes","api","apiRoute","serverURL","count","getQueryParams","selectAll","i18n","selected","setSelected","stringifyParams","router","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","useEffect","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","onChange","formState","prevFormState","None","onSuccess","replace","params","page","AllAvailable","undefined","_jsxs","Header","id","Provider","value","label","type","length","path","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, 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 { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n readonly fields: ClientField[]\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\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<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\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<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, labels: { plural } } = {}, collection, fields } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\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 <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\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 fields={selected} path=\"\" readOnly={false} schemaPath={slug} />\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 <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}