@payloadcms/ui 3.0.0-beta.92 → 3.0.0-beta.94
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.
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +44 -30
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.scss +14 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +7 -7
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +14 -17
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts +1 -2
- package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js +5 -8
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +31 -28
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +65 -55
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +4 -0
- package/dist/elements/BulkUpload/FormsManager/index.d.ts +4 -7
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +62 -36
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/Header/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/Header/index.js +1 -3
- package/dist/elements/BulkUpload/Header/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +21 -5
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +148 -51
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +18 -15
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +1 -0
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/Dropzone/index.d.ts +3 -3
- package/dist/elements/Dropzone/index.d.ts.map +1 -1
- package/dist/elements/Dropzone/index.js +23 -50
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/Dropzone/index.scss +6 -23
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +0 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.scss +1 -0
- package/dist/elements/ListDrawer/index.scss +7 -0
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +108 -45
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.d.ts +3 -3
- package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +10 -6
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +84 -9
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +59 -33
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +9 -0
- package/dist/exports/client/{CodeEditor-MTP455NO.js → CodeEditor-P66JEENA.js} +2 -2
- package/dist/exports/client/{chunk-NJHSEGFB.js → chunk-XKP472RX.js} +1 -1
- package/dist/exports/client/{chunk-NJHSEGFB.js.map → chunk-XKP472RX.js.map} +1 -1
- package/dist/exports/client/index.d.ts +3 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Upload/HasMany/index.d.ts +16 -2
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +148 -224
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.scss +12 -56
- package/dist/fields/Upload/HasOne/index.d.ts +13 -9
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +30 -121
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.scss +0 -68
- package/dist/fields/Upload/{HasOne/Input.d.ts → Input.d.ts} +9 -4
- package/dist/fields/Upload/Input.d.ts.map +1 -0
- package/dist/fields/Upload/Input.js +366 -0
- package/dist/fields/Upload/Input.js.map +1 -0
- package/dist/fields/Upload/RelationshipContent/index.d.ts +21 -0
- package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -0
- package/dist/fields/Upload/RelationshipContent/index.js +135 -0
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -0
- package/dist/fields/Upload/RelationshipContent/index.scss +51 -0
- package/dist/fields/Upload/UploadCard/index.d.ts +10 -0
- package/dist/fields/Upload/UploadCard/index.d.ts.map +1 -0
- package/dist/fields/Upload/UploadCard/index.js +15 -0
- package/dist/fields/Upload/UploadCard/index.js.map +1 -0
- package/dist/fields/Upload/UploadCard/index.scss +27 -0
- package/dist/fields/Upload/index.d.ts +4 -4
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +85 -91
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/Upload/index.scss +57 -0
- package/dist/providers/Root/index.d.ts +12 -12
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +4 -4
- package/dist/fields/Upload/HasOne/Input.d.ts.map +0 -1
- package/dist/fields/Upload/HasOne/Input.js +0 -324
- package/dist/fields/Upload/HasOne/Input.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-MTP455NO.js.map → CodeEditor-P66JEENA.js.map} +0 -0
|
@@ -13,23 +13,30 @@ import { Button } from '../../Button/index.js';
|
|
|
13
13
|
import { Drawer } from '../../Drawer/index.js';
|
|
14
14
|
import { ErrorPill } from '../../ErrorPill/index.js';
|
|
15
15
|
import { Pill } from '../../Pill/index.js';
|
|
16
|
+
import { ShimmerEffect } from '../../ShimmerEffect/index.js';
|
|
16
17
|
import { Actions } from '../ActionsBar/index.js';
|
|
17
18
|
import { AddFilesView } from '../AddFilesView/index.js';
|
|
18
19
|
import { useFormsManager } from '../FormsManager/index.js';
|
|
20
|
+
import { useBulkUpload } from '../index.js';
|
|
19
21
|
import './index.scss';
|
|
20
22
|
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
21
|
-
const
|
|
23
|
+
const addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files';
|
|
22
24
|
const baseClass = 'file-selections';
|
|
23
25
|
export function FileSidebar() {
|
|
24
|
-
const $ = _c(
|
|
26
|
+
const $ = _c(34);
|
|
25
27
|
const {
|
|
26
28
|
activeIndex,
|
|
27
29
|
addFiles,
|
|
28
30
|
forms,
|
|
31
|
+
isInitializing,
|
|
29
32
|
removeFile,
|
|
30
33
|
setActiveIndex,
|
|
31
34
|
totalErrorCount
|
|
32
35
|
} = useFormsManager();
|
|
36
|
+
const {
|
|
37
|
+
initialFiles,
|
|
38
|
+
maxFiles
|
|
39
|
+
} = useBulkUpload();
|
|
33
40
|
const {
|
|
34
41
|
i18n,
|
|
35
42
|
t
|
|
@@ -57,7 +64,7 @@ export function FileSidebar() {
|
|
|
57
64
|
if ($[2] !== addFiles || $[3] !== closeModal) {
|
|
58
65
|
t1 = filelist => {
|
|
59
66
|
addFiles(filelist);
|
|
60
|
-
closeModal(
|
|
67
|
+
closeModal(addMoreFilesDrawerSlug);
|
|
61
68
|
};
|
|
62
69
|
$[2] = addFiles;
|
|
63
70
|
$[3] = closeModal;
|
|
@@ -67,6 +74,7 @@ export function FileSidebar() {
|
|
|
67
74
|
}
|
|
68
75
|
const handleAddFiles = t1;
|
|
69
76
|
const getFileSize = _temp;
|
|
77
|
+
const totalFileCount = isInitializing ? initialFiles.length : forms.length;
|
|
70
78
|
const t2 = showFiles && `${baseClass}__showingFiles`;
|
|
71
79
|
let t3;
|
|
72
80
|
if ($[5] !== t2) {
|
|
@@ -78,43 +86,35 @@ export function FileSidebar() {
|
|
|
78
86
|
}
|
|
79
87
|
const t4 = t3.join(" ");
|
|
80
88
|
let t5;
|
|
81
|
-
if ($[7] !== breakpoints.m || $[8] !== showFiles || $[9] !== totalErrorCount || $[10] !== i18n || $[11] !==
|
|
89
|
+
if ($[7] !== breakpoints.m || $[8] !== showFiles || $[9] !== totalErrorCount || $[10] !== i18n || $[11] !== totalFileCount || $[12] !== t || $[13] !== maxFiles || $[14] !== openModal || $[15] !== closeModal || $[16] !== handleAddFiles || $[17] !== isInitializing || $[18] !== forms || $[19] !== initialFiles || $[20] !== activeIndex || $[21] !== setActiveIndex || $[22] !== handleRemoveFile || $[23] !== t4) {
|
|
82
90
|
let t6;
|
|
83
|
-
if ($[
|
|
84
|
-
t6 = () =>
|
|
85
|
-
$[
|
|
86
|
-
$[22] = t6;
|
|
91
|
+
if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
|
|
92
|
+
t6 = () => setShowFiles(prev => !prev);
|
|
93
|
+
$[25] = t6;
|
|
87
94
|
} else {
|
|
88
|
-
t6 = $[
|
|
95
|
+
t6 = $[25];
|
|
89
96
|
}
|
|
90
97
|
let t7;
|
|
91
|
-
if ($[
|
|
92
|
-
t7 = () =>
|
|
93
|
-
$[
|
|
98
|
+
if ($[26] !== closeModal) {
|
|
99
|
+
t7 = () => closeModal(addMoreFilesDrawerSlug);
|
|
100
|
+
$[26] = closeModal;
|
|
101
|
+
$[27] = t7;
|
|
94
102
|
} else {
|
|
95
|
-
t7 = $[
|
|
103
|
+
t7 = $[27];
|
|
96
104
|
}
|
|
97
105
|
let t8;
|
|
98
|
-
if ($[
|
|
99
|
-
t8 = () =>
|
|
100
|
-
$[24] = closeModal;
|
|
101
|
-
$[25] = t8;
|
|
102
|
-
} else {
|
|
103
|
-
t8 = $[25];
|
|
104
|
-
}
|
|
105
|
-
let t9;
|
|
106
|
-
if ($[26] !== activeIndex || $[27] !== setActiveIndex || $[28] !== i18n || $[29] !== t || $[30] !== handleRemoveFile) {
|
|
107
|
-
t9 = (t10, index) => {
|
|
106
|
+
if ($[28] !== activeIndex || $[29] !== setActiveIndex || $[30] !== i18n || $[31] !== t || $[32] !== handleRemoveFile) {
|
|
107
|
+
t8 = (t9, index_0) => {
|
|
108
108
|
const {
|
|
109
109
|
errorCount,
|
|
110
110
|
formState
|
|
111
|
-
} =
|
|
111
|
+
} = t9;
|
|
112
112
|
const currentFile = formState.file.value;
|
|
113
113
|
return _jsxs("div", {
|
|
114
|
-
className: [`${baseClass}__fileRowContainer`,
|
|
114
|
+
className: [`${baseClass}__fileRowContainer`, index_0 === activeIndex && `${baseClass}__fileRowContainer--active`, errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`].filter(Boolean).join(" "),
|
|
115
115
|
children: [_jsxs("button", {
|
|
116
116
|
className: `${baseClass}__fileRow`,
|
|
117
|
-
onClick: () => setActiveIndex(
|
|
117
|
+
onClick: () => setActiveIndex(index_0),
|
|
118
118
|
type: "button",
|
|
119
119
|
children: [_jsx("img", {
|
|
120
120
|
alt: currentFile.name,
|
|
@@ -140,20 +140,20 @@ export function FileSidebar() {
|
|
|
140
140
|
}), _jsx("button", {
|
|
141
141
|
"aria-label": t("general:remove"),
|
|
142
142
|
className: `${baseClass}__remove ${baseClass}__remove--overlay`,
|
|
143
|
-
onClick: () => handleRemoveFile(
|
|
143
|
+
onClick: () => handleRemoveFile(index_0),
|
|
144
144
|
type: "button",
|
|
145
145
|
children: _jsx(XIcon, {})
|
|
146
146
|
})]
|
|
147
|
-
},
|
|
147
|
+
}, index_0);
|
|
148
148
|
};
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
149
|
+
$[28] = activeIndex;
|
|
150
|
+
$[29] = setActiveIndex;
|
|
151
|
+
$[30] = i18n;
|
|
152
|
+
$[31] = t;
|
|
153
|
+
$[32] = handleRemoveFile;
|
|
154
|
+
$[33] = t8;
|
|
155
155
|
} else {
|
|
156
|
-
|
|
156
|
+
t8 = $[33];
|
|
157
157
|
}
|
|
158
158
|
t5 = _jsxs("div", {
|
|
159
159
|
className: t4,
|
|
@@ -171,28 +171,28 @@ export function FileSidebar() {
|
|
|
171
171
|
withMessage: true
|
|
172
172
|
}), _jsx("p", {
|
|
173
173
|
children: _jsxs("strong", {
|
|
174
|
-
title: `${
|
|
175
|
-
children: [
|
|
174
|
+
title: `${totalFileCount} ${t(totalFileCount > 1 ? "upload:filesToUpload" : "upload:fileToUpload")}`,
|
|
175
|
+
children: [totalFileCount, " ", t(totalFileCount > 1 ? "upload:filesToUpload" : "upload:fileToUpload")]
|
|
176
176
|
})
|
|
177
177
|
})]
|
|
178
178
|
}), _jsxs("div", {
|
|
179
179
|
className: `${baseClass}__header__actions`,
|
|
180
|
-
children: [_jsx(Pill, {
|
|
181
|
-
onClick:
|
|
180
|
+
children: [typeof maxFiles === "number" && totalFileCount < maxFiles ? _jsx(Pill, {
|
|
181
|
+
onClick: () => openModal(addMoreFilesDrawerSlug),
|
|
182
182
|
children: t("upload:addFile")
|
|
183
|
-
}), _jsx(Button, {
|
|
183
|
+
}) : null, _jsx(Button, {
|
|
184
184
|
buttonStyle: "transparent",
|
|
185
185
|
className: `${baseClass}__toggler`,
|
|
186
|
-
onClick:
|
|
186
|
+
onClick: t6,
|
|
187
187
|
children: _jsx(ChevronIcon, {
|
|
188
188
|
direction: showFiles ? "down" : "up"
|
|
189
189
|
})
|
|
190
190
|
}), _jsx(Drawer, {
|
|
191
191
|
Header: null,
|
|
192
192
|
gutter: false,
|
|
193
|
-
slug:
|
|
193
|
+
slug: addMoreFilesDrawerSlug,
|
|
194
194
|
children: _jsx(AddFilesView, {
|
|
195
|
-
onCancel:
|
|
195
|
+
onCancel: t7,
|
|
196
196
|
onDrop: handleAddFiles
|
|
197
197
|
})
|
|
198
198
|
})]
|
|
@@ -206,9 +206,9 @@ export function FileSidebar() {
|
|
|
206
206
|
children: _jsx(AnimateHeight, {
|
|
207
207
|
duration: 200,
|
|
208
208
|
height: !breakpoints.m || showFiles ? "auto" : 0,
|
|
209
|
-
children:
|
|
209
|
+
children: _jsxs("div", {
|
|
210
210
|
className: `${baseClass}__filesContainer`,
|
|
211
|
-
children: forms.map(
|
|
211
|
+
children: [isInitializing && forms.length === 0 && initialFiles.length > 0 ? Array.from(initialFiles).map(_temp2) : null, forms.map(t8)]
|
|
212
212
|
})
|
|
213
213
|
})
|
|
214
214
|
})]
|
|
@@ -217,21 +217,31 @@ export function FileSidebar() {
|
|
|
217
217
|
$[8] = showFiles;
|
|
218
218
|
$[9] = totalErrorCount;
|
|
219
219
|
$[10] = i18n;
|
|
220
|
-
$[11] =
|
|
220
|
+
$[11] = totalFileCount;
|
|
221
221
|
$[12] = t;
|
|
222
|
-
$[13] =
|
|
223
|
-
$[14] =
|
|
224
|
-
$[15] =
|
|
225
|
-
$[16] =
|
|
226
|
-
$[17] =
|
|
227
|
-
$[18] =
|
|
228
|
-
$[19] =
|
|
229
|
-
$[20] =
|
|
222
|
+
$[13] = maxFiles;
|
|
223
|
+
$[14] = openModal;
|
|
224
|
+
$[15] = closeModal;
|
|
225
|
+
$[16] = handleAddFiles;
|
|
226
|
+
$[17] = isInitializing;
|
|
227
|
+
$[18] = forms;
|
|
228
|
+
$[19] = initialFiles;
|
|
229
|
+
$[20] = activeIndex;
|
|
230
|
+
$[21] = setActiveIndex;
|
|
231
|
+
$[22] = handleRemoveFile;
|
|
232
|
+
$[23] = t4;
|
|
233
|
+
$[24] = t5;
|
|
230
234
|
} else {
|
|
231
|
-
t5 = $[
|
|
235
|
+
t5 = $[24];
|
|
232
236
|
}
|
|
233
237
|
return t5;
|
|
234
238
|
}
|
|
239
|
+
function _temp2(file_0, index) {
|
|
240
|
+
return _jsx(ShimmerEffect, {
|
|
241
|
+
animationDelay: `calc(${index} * ${60}ms)`,
|
|
242
|
+
height: "35px"
|
|
243
|
+
}, index);
|
|
244
|
+
}
|
|
235
245
|
function _temp(file) {
|
|
236
246
|
const size = file.size;
|
|
237
247
|
const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","useWindowInfo","React","AnimateHeightImport","ChevronIcon","XIcon","useTranslation","Button","Drawer","ErrorPill","Pill","Actions","AddFilesView","useFormsManager","AnimateHeight","default","drawerSlug","baseClass","FileSidebar","$","activeIndex","addFiles","forms","removeFile","setActiveIndex","totalErrorCount","i18n","t","closeModal","openModal","showFiles","setShowFiles","useState","breakpoints","t0","indexToRemove","handleRemoveFile","t1","filelist","handleAddFiles","getFileSize","_temp","t2","t3","filter","Boolean","t4","join","t5","m","t6","t7","Symbol","for","prev","t8","t9","t10","index","errorCount","formState","currentFile","file","value","_jsxs","className","children","onClick","type","_jsx","alt","name","src","URL","createObjectURL","title","count","withMessage","length","buttonStyle","direction","Header","gutter","slug","onCancel","onDrop","duration","height","map","size","i","Math","floor","log","decimals","formattedSize","pow","toFixed"],"sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { ErrorPill } from '../../ErrorPill/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Actions } from '../ActionsBar/index.js'\nimport { AddFilesView } from '../AddFilesView/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nconst drawerSlug = 'bulk-upload-drawer--add-more-files'\n\nconst baseClass = 'file-selections'\n\nexport function FileSidebar() {\n const { activeIndex, addFiles, forms, removeFile, setActiveIndex, totalErrorCount } =\n useFormsManager()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const [showFiles, setShowFiles] = React.useState(false)\n const { breakpoints } = useWindowInfo()\n\n const handleRemoveFile = React.useCallback(\n (indexToRemove: number) => {\n removeFile(indexToRemove)\n },\n [removeFile],\n )\n\n const handleAddFiles = React.useCallback(\n (filelist: FileList) => {\n addFiles(filelist)\n closeModal(drawerSlug)\n },\n [addFiles, closeModal],\n )\n\n const getFileSize = React.useCallback((file: File) => {\n const size = file.size\n const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n const decimals = i > 1 ? 1 : 0\n const formattedSize =\n (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]\n return formattedSize\n }, [])\n\n return (\n <div\n className={[baseClass, showFiles && `${baseClass}__showingFiles`].filter(Boolean).join(' ')}\n >\n {breakpoints.m && showFiles ? <div className={`${baseClass}__mobileBlur`} /> : null}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__headerTopRow`}>\n <div className={`${baseClass}__header__text`}>\n <ErrorPill count={totalErrorCount} i18n={i18n} withMessage />\n <p>\n <strong\n title={`${forms.length} ${t(forms.length > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {forms.length}{' '}\n {t(forms.length > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </p>\n </div>\n\n <div className={`${baseClass}__header__actions`}>\n <Pill onClick={() => openModal(drawerSlug)}>{t('upload:addFile')}</Pill>\n <Button\n buttonStyle=\"transparent\"\n className={`${baseClass}__toggler`}\n onClick={() => setShowFiles((prev) => !prev)}\n >\n <ChevronIcon direction={showFiles ? 'down' : 'up'} />\n </Button>\n\n <Drawer Header={null} gutter={false} slug={drawerSlug}>\n <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={handleAddFiles} />\n </Drawer>\n </div>\n </div>\n\n <div className={`${baseClass}__header__mobileDocActions`}>\n <Actions />\n </div>\n </div>\n\n <div className={`${baseClass}__animateWrapper`}>\n <AnimateHeight duration={200} height={!breakpoints.m || showFiles ? 'auto' : 0}>\n <div className={`${baseClass}__filesContainer`}>\n {forms.map(({ errorCount, formState }, index) => {\n const currentFile = formState.file.value as File\n\n return (\n <div\n className={[\n `${baseClass}__fileRowContainer`,\n index === activeIndex && `${baseClass}__fileRowContainer--active`,\n errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={index}\n >\n <button\n className={`${baseClass}__fileRow`}\n onClick={() => setActiveIndex(index)}\n type=\"button\"\n >\n <img alt={currentFile.name} src={URL.createObjectURL(currentFile)} />\n <div className={`${baseClass}__fileDetails`}>\n <p className={`${baseClass}__fileName`} title={currentFile.name}>\n {currentFile.name}\n </p>\n </div>\n <p className={`${baseClass}__fileSize`}>{getFileSize(currentFile)}</p>\n <div className={`${baseClass}__remove ${baseClass}__remove--underlay`}>\n <XIcon />\n </div>\n\n {errorCount ? (\n <ErrorPill\n className={`${baseClass}__errorCount`}\n count={errorCount}\n i18n={i18n}\n />\n ) : null}\n </button>\n\n <button\n aria-label={t('general:remove')}\n className={`${baseClass}__remove ${baseClass}__remove--overlay`}\n onClick={() => handleRemoveFile(index)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )\n })}\n </div>\n </AnimateHeight>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","useWindowInfo","React","AnimateHeightImport","ChevronIcon","XIcon","useTranslation","Button","Drawer","ErrorPill","Pill","ShimmerEffect","Actions","AddFilesView","useFormsManager","useBulkUpload","AnimateHeight","default","addMoreFilesDrawerSlug","baseClass","FileSidebar","$","activeIndex","addFiles","forms","isInitializing","removeFile","setActiveIndex","totalErrorCount","initialFiles","maxFiles","i18n","t","closeModal","openModal","showFiles","setShowFiles","useState","breakpoints","t0","indexToRemove","handleRemoveFile","t1","filelist","handleAddFiles","getFileSize","_temp","totalFileCount","length","t2","t3","filter","Boolean","t4","join","t5","m","t6","Symbol","for","prev","t7","t8","t9","index_0","errorCount","formState","currentFile","file","value","_jsxs","className","index","children","onClick","type","_jsx","alt","name","src","URL","createObjectURL","title","count","withMessage","buttonStyle","direction","Header","gutter","slug","onCancel","onDrop","duration","height","Array","from","map","_temp2","file_0","animationDelay","size","i","Math","floor","log","decimals","formattedSize","pow","toFixed"],"sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { ErrorPill } from '../../ErrorPill/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Actions } from '../ActionsBar/index.js'\nimport { AddFilesView } from '../AddFilesView/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { useBulkUpload } from '../index.js'\nimport './index.scss'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nconst addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files'\n\nconst baseClass = 'file-selections'\n\nexport function FileSidebar() {\n const {\n activeIndex,\n addFiles,\n forms,\n isInitializing,\n removeFile,\n setActiveIndex,\n totalErrorCount,\n } = useFormsManager()\n const { initialFiles, maxFiles } = useBulkUpload()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const [showFiles, setShowFiles] = React.useState(false)\n const { breakpoints } = useWindowInfo()\n\n const handleRemoveFile = React.useCallback(\n (indexToRemove: number) => {\n removeFile(indexToRemove)\n },\n [removeFile],\n )\n\n const handleAddFiles = React.useCallback(\n (filelist: FileList) => {\n void addFiles(filelist)\n closeModal(addMoreFilesDrawerSlug)\n },\n [addFiles, closeModal],\n )\n\n const getFileSize = React.useCallback((file: File) => {\n const size = file.size\n const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n const decimals = i > 1 ? 1 : 0\n const formattedSize =\n (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]\n return formattedSize\n }, [])\n\n const totalFileCount = isInitializing ? initialFiles.length : forms.length\n\n return (\n <div\n className={[baseClass, showFiles && `${baseClass}__showingFiles`].filter(Boolean).join(' ')}\n >\n {breakpoints.m && showFiles ? <div className={`${baseClass}__mobileBlur`} /> : null}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__headerTopRow`}>\n <div className={`${baseClass}__header__text`}>\n <ErrorPill count={totalErrorCount} i18n={i18n} withMessage />\n <p>\n <strong\n title={`${totalFileCount} ${t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {totalFileCount}{' '}\n {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </p>\n </div>\n\n <div className={`${baseClass}__header__actions`}>\n {typeof maxFiles === 'number' && totalFileCount < maxFiles ? (\n <Pill onClick={() => openModal(addMoreFilesDrawerSlug)}>{t('upload:addFile')}</Pill>\n ) : null}\n <Button\n buttonStyle=\"transparent\"\n className={`${baseClass}__toggler`}\n onClick={() => setShowFiles((prev) => !prev)}\n >\n <ChevronIcon direction={showFiles ? 'down' : 'up'} />\n </Button>\n\n <Drawer Header={null} gutter={false} slug={addMoreFilesDrawerSlug}>\n <AddFilesView\n onCancel={() => closeModal(addMoreFilesDrawerSlug)}\n onDrop={handleAddFiles}\n />\n </Drawer>\n </div>\n </div>\n\n <div className={`${baseClass}__header__mobileDocActions`}>\n <Actions />\n </div>\n </div>\n\n <div className={`${baseClass}__animateWrapper`}>\n <AnimateHeight duration={200} height={!breakpoints.m || showFiles ? 'auto' : 0}>\n <div className={`${baseClass}__filesContainer`}>\n {isInitializing && forms.length === 0 && initialFiles.length > 0\n ? Array.from(initialFiles).map((file, index) => (\n <ShimmerEffect\n animationDelay={`calc(${index} * ${60}ms)`}\n height=\"35px\"\n key={index}\n />\n ))\n : null}\n {forms.map(({ errorCount, formState }, index) => {\n const currentFile = formState.file.value as File\n\n return (\n <div\n className={[\n `${baseClass}__fileRowContainer`,\n index === activeIndex && `${baseClass}__fileRowContainer--active`,\n errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={index}\n >\n <button\n className={`${baseClass}__fileRow`}\n onClick={() => setActiveIndex(index)}\n type=\"button\"\n >\n <img alt={currentFile.name} src={URL.createObjectURL(currentFile)} />\n <div className={`${baseClass}__fileDetails`}>\n <p className={`${baseClass}__fileName`} title={currentFile.name}>\n {currentFile.name}\n </p>\n </div>\n <p className={`${baseClass}__fileSize`}>{getFileSize(currentFile)}</p>\n <div className={`${baseClass}__remove ${baseClass}__remove--underlay`}>\n <XIcon />\n </div>\n\n {errorCount ? (\n <ErrorPill\n className={`${baseClass}__errorCount`}\n count={errorCount}\n i18n={i18n}\n />\n ) : null}\n </button>\n\n <button\n aria-label={t('general:remove')}\n className={`${baseClass}__remove ${baseClass}__remove--overlay`}\n onClick={() => handleRemoveFile(index)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )\n })}\n </div>\n </AnimateHeight>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { Data, DocumentPermissions } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { BulkUploadProps } from '../index.js';
|
|
4
3
|
import type { State } from './reducer.js';
|
|
5
4
|
type FormsManagerContext = {
|
|
6
5
|
readonly activeIndex: State['activeIndex'];
|
|
7
|
-
readonly addFiles: (filelist: FileList) => void
|
|
6
|
+
readonly addFiles: (filelist: FileList) => Promise<void>;
|
|
8
7
|
readonly collectionSlug: string;
|
|
9
8
|
readonly docPermissions?: DocumentPermissions;
|
|
10
9
|
readonly forms: State['forms'];
|
|
@@ -12,7 +11,7 @@ type FormsManagerContext = {
|
|
|
12
11
|
readonly hasPublishPermission: boolean;
|
|
13
12
|
readonly hasSavePermission: boolean;
|
|
14
13
|
readonly hasSubmitted: boolean;
|
|
15
|
-
readonly
|
|
14
|
+
readonly isInitializing: boolean;
|
|
16
15
|
readonly removeFile: (index: number) => void;
|
|
17
16
|
readonly saveAllDocs: ({ overrides }?: {
|
|
18
17
|
overrides?: Record<string, unknown>;
|
|
@@ -24,12 +23,10 @@ type FormsManagerContext = {
|
|
|
24
23
|
}) => void;
|
|
25
24
|
readonly totalErrorCount?: number;
|
|
26
25
|
};
|
|
27
|
-
type
|
|
26
|
+
type FormsManagerProps = {
|
|
28
27
|
readonly children: React.ReactNode;
|
|
29
|
-
readonly collectionSlug: string;
|
|
30
|
-
readonly onSuccess: BulkUploadProps['onSuccess'];
|
|
31
28
|
};
|
|
32
|
-
export declare function FormsManagerProvider({ children
|
|
29
|
+
export declare function FormsManagerProvider({ children }: FormsManagerProps): React.JSX.Element;
|
|
33
30
|
export declare function useFormsManager(): FormsManagerContext;
|
|
34
31
|
export {};
|
|
35
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,mBAAmB,EAAa,MAAM,SAAS,CAAA;AAInE,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAA;AAInE,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAazC,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,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IAC7C,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,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AA0BD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AACD,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAuTnE;AAED,wBAAgB,eAAe,wBAE9B"}
|
|
@@ -12,12 +12,12 @@ import { useTranslation } from '../../../providers/Translation/index.js';
|
|
|
12
12
|
import { getFormState } from '../../../utilities/getFormState.js';
|
|
13
13
|
import { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js';
|
|
14
14
|
import { useLoadingOverlay } from '../../LoadingOverlay/index.js';
|
|
15
|
-
import {
|
|
15
|
+
import { useBulkUpload } from '../index.js';
|
|
16
16
|
import { createFormData } from './createFormData.js';
|
|
17
17
|
import { formsManagementReducer } from './reducer.js';
|
|
18
18
|
const Context = /*#__PURE__*/React.createContext({
|
|
19
19
|
activeIndex: 0,
|
|
20
|
-
addFiles: () =>
|
|
20
|
+
addFiles: () => Promise.resolve(),
|
|
21
21
|
collectionSlug: '',
|
|
22
22
|
docPermissions: undefined,
|
|
23
23
|
forms: [],
|
|
@@ -27,7 +27,7 @@ const Context = /*#__PURE__*/React.createContext({
|
|
|
27
27
|
hasPublishPermission: false,
|
|
28
28
|
hasSavePermission: false,
|
|
29
29
|
hasSubmitted: false,
|
|
30
|
-
|
|
30
|
+
isInitializing: false,
|
|
31
31
|
removeFile: () => {},
|
|
32
32
|
saveAllDocs: () => Promise.resolve(),
|
|
33
33
|
setActiveIndex: () => 0,
|
|
@@ -40,9 +40,7 @@ const initialState = {
|
|
|
40
40
|
totalErrorCount: 0
|
|
41
41
|
};
|
|
42
42
|
export function FormsManagerProvider({
|
|
43
|
-
children
|
|
44
|
-
collectionSlug,
|
|
45
|
-
onSuccess
|
|
43
|
+
children
|
|
46
44
|
}) {
|
|
47
45
|
const {
|
|
48
46
|
config
|
|
@@ -56,18 +54,17 @@ export function FormsManagerProvider({
|
|
|
56
54
|
const {
|
|
57
55
|
code
|
|
58
56
|
} = useLocale();
|
|
59
|
-
const {
|
|
60
|
-
closeModal
|
|
61
|
-
} = useModal();
|
|
62
57
|
const {
|
|
63
58
|
i18n,
|
|
64
59
|
t
|
|
65
60
|
} = useTranslation();
|
|
66
|
-
const [isLoadingFiles, setIsLoadingFiles] = React.useState(false);
|
|
67
61
|
const [hasSubmitted, setHasSubmitted] = React.useState(false);
|
|
68
62
|
const [docPermissions, setDocPermissions] = React.useState();
|
|
69
63
|
const [hasSavePermission, setHasSavePermission] = React.useState(false);
|
|
70
64
|
const [hasPublishPermission, setHasPublishPermission] = React.useState(false);
|
|
65
|
+
const [hasInitializedState, setHasInitializedState] = React.useState(false);
|
|
66
|
+
const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false);
|
|
67
|
+
const [isInitializing, setIsInitializing] = React.useState(false);
|
|
71
68
|
const [state, dispatch] = React.useReducer(formsManagementReducer, initialState);
|
|
72
69
|
const {
|
|
73
70
|
activeIndex,
|
|
@@ -77,16 +74,20 @@ export function FormsManagerProvider({
|
|
|
77
74
|
const {
|
|
78
75
|
toggleLoadingOverlay
|
|
79
76
|
} = useLoadingOverlay();
|
|
77
|
+
const {
|
|
78
|
+
closeModal
|
|
79
|
+
} = useModal();
|
|
80
|
+
const {
|
|
81
|
+
collectionSlug,
|
|
82
|
+
drawerSlug,
|
|
83
|
+
initialFiles,
|
|
84
|
+
onSuccess
|
|
85
|
+
} = useBulkUpload();
|
|
86
|
+
const hasInitializedWithFiles = React.useRef(false);
|
|
80
87
|
const initialStateRef = React.useRef(null);
|
|
81
|
-
const hasFetchedInitialFormState = React.useRef(false);
|
|
82
88
|
const getFormDataRef = React.useRef(() => ({}));
|
|
83
|
-
const initialFormStateAbortControllerRef = React.useRef(null);
|
|
84
|
-
const hasFetchedInitialDocPermissions = React.useRef(false);
|
|
85
|
-
const initialDocPermissionsAbortControllerRef = React.useRef(null);
|
|
86
89
|
const actionURL = `${api}/${collectionSlug}`;
|
|
87
90
|
const initilizeSharedDocPermissions = React.useCallback(async () => {
|
|
88
|
-
if (initialDocPermissionsAbortControllerRef.current) initialDocPermissionsAbortControllerRef.current.abort('aborting previous fetch for initial doc permissions');
|
|
89
|
-
initialDocPermissionsAbortControllerRef.current = new AbortController();
|
|
90
91
|
const params = {
|
|
91
92
|
locale: code || undefined
|
|
92
93
|
};
|
|
@@ -97,8 +98,7 @@ export function FormsManagerProvider({
|
|
|
97
98
|
'Accept-Language': i18n.language,
|
|
98
99
|
'Content-Type': 'application/json'
|
|
99
100
|
},
|
|
100
|
-
method: 'post'
|
|
101
|
-
signal: initialDocPermissionsAbortControllerRef.current.signal
|
|
101
|
+
method: 'post'
|
|
102
102
|
});
|
|
103
103
|
const json = await res.json();
|
|
104
104
|
const publishedAccessJSON = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {
|
|
@@ -119,10 +119,12 @@ export function FormsManagerProvider({
|
|
|
119
119
|
isEditing: false
|
|
120
120
|
}));
|
|
121
121
|
setHasPublishPermission(publishedAccessJSON?.update?.permission);
|
|
122
|
+
setHasInitializedDocPermissions(true);
|
|
122
123
|
}, [api, code, collectionSlug, i18n.language, serverURL]);
|
|
123
|
-
const initializeSharedFormState = React.useCallback(async
|
|
124
|
-
if (
|
|
125
|
-
|
|
124
|
+
const initializeSharedFormState = React.useCallback(async abortController => {
|
|
125
|
+
if (abortController?.signal) {
|
|
126
|
+
abortController.abort('aborting previous fetch for initial form state without files');
|
|
127
|
+
}
|
|
126
128
|
try {
|
|
127
129
|
const formStateWithoutFiles = await getFormState({
|
|
128
130
|
apiRoute: config.routes.api,
|
|
@@ -134,10 +136,10 @@ export function FormsManagerProvider({
|
|
|
134
136
|
},
|
|
135
137
|
// onError: onLoadError,
|
|
136
138
|
serverURL: config.serverURL,
|
|
137
|
-
signal:
|
|
139
|
+
signal: abortController?.signal
|
|
138
140
|
});
|
|
139
141
|
initialStateRef.current = formStateWithoutFiles;
|
|
140
|
-
|
|
142
|
+
setHasInitializedState(true);
|
|
141
143
|
} catch (error) {
|
|
142
144
|
// swallow error
|
|
143
145
|
}
|
|
@@ -160,15 +162,24 @@ export function FormsManagerProvider({
|
|
|
160
162
|
}
|
|
161
163
|
});
|
|
162
164
|
}, [forms, activeIndex]);
|
|
163
|
-
const addFiles = React.useCallback(files => {
|
|
164
|
-
|
|
165
|
+
const addFiles = React.useCallback(async files => {
|
|
166
|
+
toggleLoadingOverlay({
|
|
167
|
+
isLoading: true,
|
|
168
|
+
key: 'addingDocs'
|
|
169
|
+
});
|
|
170
|
+
if (!hasInitializedState) {
|
|
171
|
+
await initializeSharedFormState();
|
|
172
|
+
}
|
|
165
173
|
dispatch({
|
|
166
174
|
type: 'ADD_FORMS',
|
|
167
175
|
files,
|
|
168
176
|
initialState: initialStateRef.current
|
|
169
177
|
});
|
|
170
|
-
|
|
171
|
-
|
|
178
|
+
toggleLoadingOverlay({
|
|
179
|
+
isLoading: false,
|
|
180
|
+
key: 'addingDocs'
|
|
181
|
+
});
|
|
182
|
+
}, [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay]);
|
|
172
183
|
const removeFile = React.useCallback(index_0 => {
|
|
173
184
|
dispatch({
|
|
174
185
|
type: 'REMOVE_FORM',
|
|
@@ -194,6 +205,7 @@ export function FormsManagerProvider({
|
|
|
194
205
|
errorCount: currentForms[activeIndex].errorCount,
|
|
195
206
|
formState: currentFormsData_0
|
|
196
207
|
};
|
|
208
|
+
const newDocs = [];
|
|
197
209
|
const promises = currentForms.map(async (form_0, i_0) => {
|
|
198
210
|
try {
|
|
199
211
|
toggleLoadingOverlay({
|
|
@@ -206,6 +218,9 @@ export function FormsManagerProvider({
|
|
|
206
218
|
method: 'POST'
|
|
207
219
|
});
|
|
208
220
|
const json_0 = await req.json();
|
|
221
|
+
if (req.status === 201 && json_0?.doc) {
|
|
222
|
+
newDocs.push(json_0.doc);
|
|
223
|
+
}
|
|
209
224
|
// should expose some sort of helper for this
|
|
210
225
|
if (json_0?.errors?.length) {
|
|
211
226
|
const [fieldErrors, nonFieldErrors] = json_0.errors.reduce(([fieldErrs, nonFieldErrs], err) => {
|
|
@@ -251,15 +266,14 @@ export function FormsManagerProvider({
|
|
|
251
266
|
const errorCount_1 = currentForms.length - successCount;
|
|
252
267
|
if (successCount) {
|
|
253
268
|
toast.success(`Successfully saved ${successCount} files`);
|
|
254
|
-
if (errorCount_1 === 0) {
|
|
255
|
-
closeModal(drawerSlug);
|
|
256
|
-
}
|
|
257
269
|
if (typeof onSuccess === 'function') {
|
|
258
|
-
onSuccess();
|
|
270
|
+
onSuccess(newDocs, errorCount_1);
|
|
259
271
|
}
|
|
260
272
|
}
|
|
261
273
|
if (errorCount_1) {
|
|
262
274
|
toast.error(`Failed to save ${errorCount_1} files`);
|
|
275
|
+
} else {
|
|
276
|
+
closeModal(drawerSlug);
|
|
263
277
|
}
|
|
264
278
|
dispatch({
|
|
265
279
|
type: 'REPLACE',
|
|
@@ -271,16 +285,28 @@ export function FormsManagerProvider({
|
|
|
271
285
|
}) => acc + errorCount_2, 0)
|
|
272
286
|
}
|
|
273
287
|
});
|
|
274
|
-
}, [actionURL, activeIndex,
|
|
288
|
+
}, [actionURL, activeIndex, forms, onSuccess, t, toggleLoadingOverlay, closeModal, drawerSlug]);
|
|
275
289
|
React.useEffect(() => {
|
|
276
|
-
if (!
|
|
290
|
+
if (!collectionSlug) return;
|
|
291
|
+
if (!hasInitializedState) {
|
|
277
292
|
void initializeSharedFormState();
|
|
278
293
|
}
|
|
279
|
-
if (!
|
|
294
|
+
if (!hasInitializedDocPermissions) {
|
|
280
295
|
void initilizeSharedDocPermissions();
|
|
281
296
|
}
|
|
297
|
+
if (initialFiles) {
|
|
298
|
+
if (!hasInitializedState || !hasInitializedDocPermissions) {
|
|
299
|
+
setIsInitializing(true);
|
|
300
|
+
} else {
|
|
301
|
+
setIsInitializing(false);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {
|
|
305
|
+
void addFiles(initialFiles);
|
|
306
|
+
hasInitializedWithFiles.current = true;
|
|
307
|
+
}
|
|
282
308
|
return;
|
|
283
|
-
}, [initializeSharedFormState, initilizeSharedDocPermissions]);
|
|
309
|
+
}, [addFiles, initialFiles, initializeSharedFormState, initilizeSharedDocPermissions, collectionSlug, hasInitializedState, hasInitializedDocPermissions]);
|
|
284
310
|
return /*#__PURE__*/_jsx(Context.Provider, {
|
|
285
311
|
value: {
|
|
286
312
|
activeIndex: state.activeIndex,
|
|
@@ -292,7 +318,7 @@ export function FormsManagerProvider({
|
|
|
292
318
|
hasPublishPermission,
|
|
293
319
|
hasSavePermission,
|
|
294
320
|
hasSubmitted,
|
|
295
|
-
|
|
321
|
+
isInitializing,
|
|
296
322
|
removeFile,
|
|
297
323
|
saveAllDocs,
|
|
298
324
|
setActiveIndex,
|