@payloadcms/ui 3.34.0-canary.2 → 3.34.0-canary.4

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 (49) hide show
  1. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/AddingFilesView/index.js +18 -11
  3. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
  5. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js +11 -9
  7. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -1
  9. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/index.d.ts +3 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js +35 -5
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +3 -1
  16. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
  17. package/dist/elements/BulkUpload/FormsManager/reducer.js +6 -1
  18. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  19. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  20. package/dist/elements/Table/DefaultCell/fields/File/index.js +3 -2
  21. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  22. package/dist/elements/Thumbnail/index.js +22 -24
  23. package/dist/elements/Thumbnail/index.js.map +1 -1
  24. package/dist/elements/Upload/index.d.ts +7 -1
  25. package/dist/elements/Upload/index.d.ts.map +1 -1
  26. package/dist/elements/Upload/index.js +30 -7
  27. package/dist/elements/Upload/index.js.map +1 -1
  28. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  29. package/dist/elements/WhereBuilder/Condition/index.js +11 -2
  30. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  31. package/dist/elements/WhereBuilder/Condition/validOperators.d.ts +19 -0
  32. package/dist/elements/WhereBuilder/Condition/validOperators.d.ts.map +1 -0
  33. package/dist/elements/WhereBuilder/Condition/validOperators.js +35 -0
  34. package/dist/elements/WhereBuilder/Condition/validOperators.js.map +1 -0
  35. package/dist/exports/client/index.js +11 -11
  36. package/dist/exports/client/index.js.map +4 -4
  37. package/dist/fields/Array/index.js +1 -1
  38. package/dist/fields/Array/index.js.map +1 -1
  39. package/dist/fields/Upload/RelationshipContent/index.js +27 -28
  40. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  41. package/dist/providers/UploadEdits/index.d.ts +6 -3
  42. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  43. package/dist/providers/UploadEdits/index.js +43 -22
  44. package/dist/providers/UploadEdits/index.js.map +1 -1
  45. package/dist/styles.css +1 -1
  46. package/dist/views/Edit/index.d.ts.map +1 -1
  47. package/dist/views/Edit/index.js +1 -1
  48. package/dist/views/Edit/index.js.map +1 -1
  49. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,sBAwD9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,sBA+D9B"}
@@ -19,7 +19,7 @@ import { DrawerHeader } from '../Header/index.js';
19
19
  import './index.scss';
20
20
  const baseClass = 'bulk-upload--file-manager';
21
21
  export function AddingFilesView() {
22
- const $ = _c(16);
22
+ const $ = _c(18);
23
23
  const {
24
24
  activeIndex,
25
25
  collectionSlug,
@@ -28,7 +28,9 @@ export function AddingFilesView() {
28
28
  forms,
29
29
  hasPublishPermission,
30
30
  hasSavePermission,
31
- hasSubmitted
31
+ hasSubmitted,
32
+ resetUploadEdits,
33
+ updateUploadEdits
32
34
  } = useFormsManager();
33
35
  const activeForm = forms[activeIndex];
34
36
  const {
@@ -44,17 +46,17 @@ export function AddingFilesView() {
44
46
  openModal
45
47
  } = useModal();
46
48
  let t0;
47
- if ($[0] !== activeForm || $[1] !== activeIndex || $[2] !== collectionSlug || $[3] !== docPermissions || $[4] !== documentSlots || $[5] !== forms.length || $[6] !== getEntityConfig || $[7] !== hasPublishPermission || $[8] !== hasSavePermission || $[9] !== hasSubmitted || $[10] !== i18n || $[11] !== openModal || $[12] !== user) {
49
+ if ($[0] !== activeForm || $[1] !== activeIndex || $[2] !== collectionSlug || $[3] !== docPermissions || $[4] !== documentSlots || $[5] !== forms.length || $[6] !== getEntityConfig || $[7] !== hasPublishPermission || $[8] !== hasSavePermission || $[9] !== hasSubmitted || $[10] !== i18n || $[11] !== openModal || $[12] !== resetUploadEdits || $[13] !== updateUploadEdits || $[14] !== user) {
48
50
  const collectionConfig = getEntityConfig({
49
51
  collectionSlug
50
52
  });
51
53
  let t1;
52
- if ($[14] !== openModal) {
54
+ if ($[16] !== openModal) {
53
55
  t1 = () => openModal(discardBulkUploadModalSlug);
54
- $[14] = openModal;
55
- $[15] = t1;
56
+ $[16] = openModal;
57
+ $[17] = t1;
56
58
  } else {
57
- t1 = $[15];
59
+ t1 = $[17];
58
60
  }
59
61
  t0 = _jsxs("div", {
60
62
  className: baseClass,
@@ -82,7 +84,10 @@ export function AddingFilesView() {
82
84
  children: [_jsx(ActionsBar, {
83
85
  collectionConfig
84
86
  }), _jsx(EditForm, {
85
- submitted: hasSubmitted
87
+ resetUploadEdits,
88
+ submitted: hasSubmitted,
89
+ updateUploadEdits,
90
+ uploadEdits: activeForm?.uploadEdits
86
91
  })]
87
92
  }, `${activeIndex}-${forms.length}`) : null]
88
93
  }), _jsx(DiscardWithoutSaving, {})]
@@ -99,10 +104,12 @@ export function AddingFilesView() {
99
104
  $[9] = hasSubmitted;
100
105
  $[10] = i18n;
101
106
  $[11] = openModal;
102
- $[12] = user;
103
- $[13] = t0;
107
+ $[12] = resetUploadEdits;
108
+ $[13] = updateUploadEdits;
109
+ $[14] = user;
110
+ $[15] = t0;
104
111
  } else {
105
- t0 = $[13];
112
+ t0 = $[15];
106
113
  }
107
114
  return t0;
108
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useAuth","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","discardBulkUploadModalSlug","DiscardWithoutSaving","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","documentSlots","forms","hasPublishPermission","hasSavePermission","hasSubmitted","activeForm","getEntityConfig","i18n","user","openModal","t0","length","collectionConfig","t1","_jsxs","className","children","_jsx","onClose","title","labels","singular","currentEditor","hasPublishedDoc","id","initialData","formState","initialState","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","Upload","versionCount","submitted"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { getEntityConfig } = useConfig()\n const { i18n } = useTranslation()\n const { user } = useAuth()\n const { openModal } = useModal()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collectionConfig.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n currentEditor={user}\n docPermissions={docPermissions}\n hasPublishedDoc={false}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n isLocked={false}\n key={`${activeIndex}-${forms.length}`}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n Upload={documentSlots.Upload}\n versionCount={0}\n >\n <ActionsBar collectionConfig={collectionConfig} />\n <EditForm submitted={hasSubmitted} />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useAuth","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","discardBulkUploadModalSlug","DiscardWithoutSaving","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","documentSlots","forms","hasPublishPermission","hasSavePermission","hasSubmitted","resetUploadEdits","updateUploadEdits","activeForm","getEntityConfig","i18n","user","openModal","t0","length","collectionConfig","t1","_jsxs","className","children","_jsx","onClose","title","labels","singular","currentEditor","hasPublishedDoc","id","initialData","formState","initialState","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","Upload","versionCount","submitted","uploadEdits"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n resetUploadEdits,\n updateUploadEdits,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { getEntityConfig } = useConfig()\n const { i18n } = useTranslation()\n const { user } = useAuth()\n const { openModal } = useModal()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collectionConfig.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n currentEditor={user}\n docPermissions={docPermissions}\n hasPublishedDoc={false}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n isLocked={false}\n key={`${activeIndex}-${forms.length}`}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n Upload={documentSlots.Upload}\n versionCount={0}\n >\n <ActionsBar collectionConfig={collectionConfig} />\n <EditForm\n resetUploadEdits={resetUploadEdits}\n submitted={hasSubmitted}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={activeForm?.uploadEdits}\n />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { EditFormProps } from './types.js';
3
3
  import './index.scss';
4
- export declare function EditForm({ submitted }: EditFormProps): React.JSX.Element;
4
+ export declare function EditForm({ resetUploadEdits, submitted, updateUploadEdits, uploadEdits, }: EditFormProps): React.JSX.Element;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAmB/C,OAAO,cAAc,CAAA;AAQrB,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,aAAa,qBAoJpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAkB/C,OAAO,cAAc,CAAA;AAQrB,wBAAgB,QAAQ,CAAC,EACvB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,EAAE,aAAa,qBAsJf"}
@@ -13,11 +13,10 @@ import { useEditDepth } from '../../../providers/EditDepth/index.js';
13
13
  import { OperationProvider } from '../../../providers/Operation/index.js';
14
14
  import { useRouteTransition } from '../../../providers/RouteTransition/index.js';
15
15
  import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
16
- import { useUploadEdits } from '../../../providers/UploadEdits/index.js';
17
16
  import { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js';
18
17
  import { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js';
19
18
  import { DocumentFields } from '../../DocumentFields/index.js';
20
- import { Upload } from '../../Upload/index.js';
19
+ import { Upload_v4 } from '../../Upload/index.js';
21
20
  import { useFormsManager } from '../FormsManager/index.js';
22
21
  import { BulkUploadProvider } from '../index.js';
23
22
  import './index.scss';
@@ -26,7 +25,10 @@ const baseClass = 'collection-edit';
26
25
  // When rendered within a drawer, props are empty
27
26
  // This is solely to support custom edit views which get server-rendered
28
27
  export function EditForm({
29
- submitted
28
+ resetUploadEdits,
29
+ submitted,
30
+ updateUploadEdits,
31
+ uploadEdits
30
32
  }) {
31
33
  const {
32
34
  action,
@@ -63,9 +65,6 @@ export function EditForm({
63
65
  const {
64
66
  reportUpdate
65
67
  } = useDocumentEvents();
66
- const {
67
- resetUploadEdits
68
- } = useUploadEdits();
69
68
  const {
70
69
  startRouteTransition
71
70
  } = useRouteTransition();
@@ -136,10 +135,13 @@ export function EditForm({
136
135
  submitted: submitted,
137
136
  children: [/*#__PURE__*/_jsx(DocumentFields, {
138
137
  BeforeFields: /*#__PURE__*/_jsx(React.Fragment, {
139
- children: CustomUpload || /*#__PURE__*/_jsx(Upload, {
138
+ children: CustomUpload || /*#__PURE__*/_jsx(Upload_v4, {
140
139
  collectionSlug: collectionConfig.slug,
141
140
  initialState: initialState,
142
- uploadConfig: collectionConfig.upload
141
+ resetUploadEdits: resetUploadEdits,
142
+ updateUploadEdits: updateUploadEdits,
143
+ uploadConfig: collectionConfig.upload,
144
+ uploadEdits: uploadEdits
143
145
  })
144
146
  }),
145
147
  docPermissions: docPermissions,
@@ -157,7 +159,7 @@ function GetFieldProxy() {
157
159
  const {
158
160
  getFormDataRef
159
161
  } = useFormsManager();
160
- React.useEffect(() => {
162
+ useEffect(() => {
161
163
  getFormDataRef.current = getFields;
162
164
  }, [getFields, getFormDataRef]);
163
165
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","useDocumentDrawerContext","DocumentFields","Upload","useFormsManager","BulkUploadProvider","baseClass","EditForm","submitted","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isEditing","isInitializing","CustomUpload","onSave","onSaveFromContext","getFormState","config","routes","admin","adminRoute","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","router","depth","params","reportUpdate","resetUploadEdits","startRouteTransition","locale","get","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","redirectRoute","path","doc","id","push","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","skipValidation","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { Upload } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { BulkUploadProvider } from '../index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({ submitted }: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isEditing,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const router = useRouter()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { startRouteTransition } = useRouteTransition()\n\n const locale = params.get('locale')\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n },\n [\n adminRoute,\n collectionSlug,\n depth,\n isEditing,\n locale,\n onSaveFromContext,\n reportUpdate,\n resetUploadEdits,\n router,\n startRouteTransition,\n ],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <BulkUploadProvider>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={collectionConfig.upload}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </BulkUploadProvider>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n React.useEffect(() => {\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","abortAndIgnore","handleAbortRef","useDocumentDrawerContext","DocumentFields","Upload_v4","useFormsManager","BulkUploadProvider","baseClass","EditForm","resetUploadEdits","submitted","updateUploadEdits","uploadEdits","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isEditing","isInitializing","Upload","CustomUpload","onSave","onSaveFromContext","getFormState","config","routes","admin","adminRoute","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","router","depth","params","reportUpdate","startRouteTransition","locale","get","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","redirectRoute","path","doc","id","push","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","skipValidation","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { Upload_v4 } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { BulkUploadProvider } from '../index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({\n resetUploadEdits,\n submitted,\n updateUploadEdits,\n uploadEdits,\n}: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isEditing,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const router = useRouter()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { startRouteTransition } = useRouteTransition()\n\n const locale = params.get('locale')\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n },\n [\n adminRoute,\n collectionSlug,\n depth,\n isEditing,\n locale,\n onSaveFromContext,\n reportUpdate,\n resetUploadEdits,\n router,\n startRouteTransition,\n ],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <BulkUploadProvider>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload_v4\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadConfig={collectionConfig.upload}\n uploadEdits={uploadEdits}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </BulkUploadProvider>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n useEffect(() => {\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
+ import type { UploadProps_v4 } from '../../Upload/index.js';
1
2
  export type EditFormProps = {
2
3
  readonly submitted?: boolean;
3
- };
4
+ } & Pick<UploadProps_v4, 'resetUploadEdits' | 'updateUploadEdits' | 'uploadEdits'>;
4
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditForm/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditForm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B,GAAG,IAAI,CAAC,cAAc,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,aAAa,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/BulkUpload/EditForm/types.ts"],"sourcesContent":["export type EditFormProps = {\n readonly submitted?: boolean\n}\n"],"mappings":"AAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/BulkUpload/EditForm/types.ts"],"sourcesContent":["import type { UploadProps_v4 } from '../../Upload/index.js'\n\nexport type EditFormProps = {\n readonly submitted?: boolean\n} & Pick<UploadProps_v4, 'resetUploadEdits' | 'updateUploadEdits' | 'uploadEdits'>\n"],"mappings":"AAEA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { Data, DocumentSlots, SanitizedDocumentPermissions } from 'payload';
1
+ import type { Data, DocumentSlots, SanitizedDocumentPermissions, UploadEdits } from 'payload';
2
2
  import React from 'react';
3
3
  import type { State } from './reducer.js';
4
4
  type FormsManagerContext = {
@@ -15,6 +15,7 @@ type FormsManagerContext = {
15
15
  readonly hasSubmitted: boolean;
16
16
  readonly isInitializing: boolean;
17
17
  readonly removeFile: (index: number) => void;
18
+ readonly resetUploadEdits?: () => void;
18
19
  readonly saveAllDocs: ({ overrides }?: {
19
20
  overrides?: Record<string, unknown>;
20
21
  }) => Promise<void>;
@@ -25,6 +26,7 @@ type FormsManagerContext = {
25
26
  }) => void;
26
27
  readonly thumbnailUrls: string[];
27
28
  readonly totalErrorCount?: number;
29
+ readonly updateUploadEdits: (args: UploadEdits) => void;
28
30
  };
29
31
  type FormsManagerProps = {
30
32
  readonly children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAa,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAK3F,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBzC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAA;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AA6BD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBA8cnE;AAED,wBAAgB,eAAe,wBAE9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,IAAI,EACJ,aAAa,EAEb,4BAA4B,EAC5B,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBzC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAA;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACxD,CAAA;AA8BD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAofnE;AAED,wBAAgB,eAAe,wBAE9B"}
@@ -39,7 +39,8 @@ const Context = /*#__PURE__*/React.createContext({
39
39
  setActiveIndex: () => 0,
40
40
  setFormTotalErrorCount: () => {},
41
41
  thumbnailUrls: [],
42
- totalErrorCount: 0
42
+ totalErrorCount: 0,
43
+ updateUploadEdits: () => {}
43
44
  });
44
45
  const initialState = {
45
46
  activeIndex: 0,
@@ -207,7 +208,8 @@ export function FormsManagerProvider({
207
208
  if (i_0 === activeIndex) {
208
209
  return {
209
210
  errorCount: form.errorCount,
210
- formState: currentFormsData
211
+ formState: currentFormsData,
212
+ uploadEdits: form.uploadEdits
211
213
  };
212
214
  }
213
215
  return form;
@@ -261,7 +263,8 @@ export function FormsManagerProvider({
261
263
  const currentForms = [...forms];
262
264
  currentForms[activeIndex] = {
263
265
  errorCount: currentForms[activeIndex].errorCount,
264
- formState: currentFormsData_0
266
+ formState: currentFormsData_0,
267
+ uploadEdits: currentForms[activeIndex].uploadEdits
265
268
  };
266
269
  const newDocs = [];
267
270
  setIsUploading(true);
@@ -272,7 +275,12 @@ export function FormsManagerProvider({
272
275
  current: i_2 + 1,
273
276
  total: currentForms.length
274
277
  }));
275
- const req = await fetch(actionURL, {
278
+ const actionURLWithParams = `${actionURL}${qs.stringify({
279
+ uploadEdits: form_0?.uploadEdits || undefined
280
+ }, {
281
+ addQueryPrefix: true
282
+ })}`;
283
+ const req = await fetch(actionURLWithParams, {
276
284
  body: await createFormData(form_0.formState, overrides, collectionSlug, getUploadHandler({
277
285
  collectionSlug
278
286
  })),
@@ -397,6 +405,26 @@ export function FormsManagerProvider({
397
405
  }
398
406
  }
399
407
  }, [collectionSlug, docPermissions, forms, getFormState, hasSubmitted]);
408
+ const updateUploadEdits = React.useCallback(uploadEdits => {
409
+ dispatch({
410
+ type: 'UPDATE_FORM',
411
+ errorCount: forms[activeIndex].errorCount,
412
+ formState: forms[activeIndex].formState,
413
+ index: activeIndex,
414
+ uploadEdits
415
+ });
416
+ }, [activeIndex, forms]);
417
+ const resetUploadEdits = React.useCallback(() => {
418
+ dispatch({
419
+ type: 'REPLACE',
420
+ state: {
421
+ forms: forms.map(form_1 => ({
422
+ ...form_1,
423
+ uploadEdits: {}
424
+ }))
425
+ }
426
+ });
427
+ }, [forms]);
400
428
  React.useEffect(() => {
401
429
  if (!collectionSlug) {
402
430
  return;
@@ -435,11 +463,13 @@ export function FormsManagerProvider({
435
463
  hasSubmitted,
436
464
  isInitializing,
437
465
  removeFile,
466
+ resetUploadEdits,
438
467
  saveAllDocs,
439
468
  setActiveIndex,
440
469
  setFormTotalErrorCount,
441
470
  thumbnailUrls: renderedThumbnails,
442
- totalErrorCount
471
+ totalErrorCount,
472
+ updateUploadEdits
443
473
  },
444
474
  children: [isUploading && /*#__PURE__*/_jsx(LoadingOverlay, {
445
475
  animationDuration: "250ms",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","isImage","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","type","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","map","form","errorCount","files","isLoading","key","removeThumbnails","indexes","filter","_","includes","count","overrides","currentForms","newDocs","total","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","remainingForms","thumbnailIndexesToRemove","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","newFormErrorCount","values","valid","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file || !isImage(file.type)) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeThumbnails = React.useCallback((indexes: number[]) => {\n thumbnailUrlsRef.current = thumbnailUrlsRef.current.filter((_, i) => !indexes.includes(i))\n setRenderedThumbnails([...thumbnailUrlsRef.current])\n }, [])\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback(\n (index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n removeThumbnails([index])\n },\n [removeThumbnails],\n )\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const req = await fetch(actionURL, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n const thumbnailIndexesToRemove = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n } else {\n thumbnailIndexesToRemove.push(i)\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n\n if (remainingForms.length && thumbnailIndexesToRemove.length) {\n removeThumbnails(thumbnailIndexesToRemove)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [\n actionURL,\n activeIndex,\n forms,\n removeThumbnails,\n onSuccess,\n collectionSlug,\n getUploadHandler,\n t,\n closeModal,\n drawerSlug,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","isImage","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","type","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","map","form","errorCount","uploadEdits","files","isLoading","key","removeThumbnails","indexes","filter","_","includes","count","overrides","currentForms","newDocs","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","remainingForms","thumbnailIndexesToRemove","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","newFormErrorCount","values","valid","resetUploadEdits","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n Data,\n DocumentSlots,\n FormState,\n SanitizedDocumentPermissions,\n UploadEdits,\n} from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly resetUploadEdits?: () => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file || !isImage(file.type)) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeThumbnails = React.useCallback((indexes: number[]) => {\n thumbnailUrlsRef.current = thumbnailUrlsRef.current.filter((_, i) => !indexes.includes(i))\n setRenderedThumbnails([...thumbnailUrlsRef.current])\n }, [])\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback(\n (index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n removeThumbnails([index])\n },\n [removeThumbnails],\n )\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n const thumbnailIndexesToRemove = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n } else {\n thumbnailIndexesToRemove.push(i)\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n\n if (remainingForms.length && thumbnailIndexesToRemove.length) {\n removeThumbnails(thumbnailIndexesToRemove)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [\n actionURL,\n activeIndex,\n forms,\n removeThumbnails,\n onSuccess,\n collectionSlug,\n getUploadHandler,\n t,\n closeModal,\n drawerSlug,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import type { FormState } from 'payload';
1
+ import type { FormState, UploadEdits } from 'payload';
2
2
  export type State = {
3
3
  activeIndex: number;
4
4
  forms: {
5
5
  errorCount: number;
6
6
  formState: FormState;
7
+ uploadEdits?: UploadEdits;
7
8
  }[];
8
9
  totalErrorCount: number;
9
10
  };
@@ -17,6 +18,7 @@ type Action = {
17
18
  index: number;
18
19
  type: 'UPDATE_FORM';
19
20
  updatedFields?: Record<string, unknown>;
21
+ uploadEdits?: UploadEdits;
20
22
  } | {
21
23
  files: FileList;
22
24
  initialState: FormState | null;
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,MAAM,KAAK,GAAG;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,SAAS,CAAA;KACrB,EAAE,CAAA;IACH,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,MAAM,GACP;IACE,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,oBAAoB,CAAA;CAC3B,GACD;IACE,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,GACD;IACE,KAAK,EAAE,QAAQ,CAAA;IACf,YAAY,EAAE,SAAS,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,WAAW,CAAA;CAClB,GACD;IACE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;CACpB,GACD;IACE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;CACzB,GACD;IACE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAEL,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAyF1E"}
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,MAAM,KAAK,GAAG;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,SAAS,CAAA;QACpB,WAAW,CAAC,EAAE,WAAW,CAAA;KAC1B,EAAE,CAAA;IACH,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,MAAM,GACP;IACE,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,oBAAoB,CAAA;CAC3B,GACD;IACE,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,GACD;IACE,KAAK,EAAE,QAAQ,CAAA;IACf,YAAY,EAAE,SAAS,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,WAAW,CAAA;CAClB,GACD;IACE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;CACpB,GACD;IACE,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;CACzB,GACD;IACE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAEL,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CA8F1E"}
@@ -13,7 +13,8 @@ export function formsManagementReducer(state, action) {
13
13
  valid: true,
14
14
  value: action.files[i]
15
15
  }
16
- }
16
+ },
17
+ uploadEdits: {}
17
18
  };
18
19
  }
19
20
  return {
@@ -70,6 +71,10 @@ export function formsManagementReducer(state, action) {
70
71
  formState: {
71
72
  ...updatedForms[action.index].formState,
72
73
  ...action.formState
74
+ },
75
+ uploadEdits: {
76
+ ...updatedForms[action.index].uploadEdits,
77
+ ...action.uploadEdits
73
78
  }
74
79
  };
75
80
  return {