@payloadcms/ui 3.45.0-canary.6 → 3.45.0-internal.2f73d3c
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/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +30 -20
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +63 -36
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +16 -20
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +5 -6
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +4 -3
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +33 -26
- 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 +7 -9
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +14 -11
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +1 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +2 -2
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +4 -2
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +27 -31
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +1 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +23 -19
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +75 -68
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useQueues.d.ts +1 -1
- package/dist/hooks/useQueues.d.ts.map +1 -1
- package/dist/hooks/useQueues.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +11 -12
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +15 -12
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.d.ts +0 -8
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.d.ts.map +0 -1
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +0 -18
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +0 -1
- package/dist/hooks/useControllableState.d.ts +0 -6
- package/dist/hooks/useControllableState.d.ts.map +0 -1
- package/dist/hooks/useControllableState.js +0 -21
- package/dist/hooks/useControllableState.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIzE,OAAO,KAAwD,MAAM,OAAO,CAAA;AAqB5E,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIzE,OAAO,KAAwD,MAAM,OAAO,CAAA;AAqB5E,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsTpC,CAAA"}
|
|
@@ -55,9 +55,10 @@ export const Autosave = ({
|
|
|
55
55
|
dispatchFields,
|
|
56
56
|
isValid,
|
|
57
57
|
setBackgroundProcessing,
|
|
58
|
-
setIsValid
|
|
58
|
+
setIsValid,
|
|
59
|
+
setSubmitted
|
|
59
60
|
} = useForm();
|
|
60
|
-
const [
|
|
61
|
+
const [fields] = useAllFormFields();
|
|
61
62
|
const modified = useFormModified();
|
|
62
63
|
const submitted = useFormSubmitted();
|
|
63
64
|
const {
|
|
@@ -75,20 +76,28 @@ export const Autosave = ({
|
|
|
75
76
|
const validateOnDraft = Boolean(docConfig?.versions?.drafts && docConfig?.versions?.drafts.validate);
|
|
76
77
|
const [_saving, setSaving] = useState(false);
|
|
77
78
|
const saving = useDeferredValue(_saving);
|
|
78
|
-
const
|
|
79
|
-
const
|
|
79
|
+
const debouncedFields = useDebounce(fields, interval);
|
|
80
|
+
const fieldRef = useRef(fields);
|
|
80
81
|
const modifiedRef = useRef(modified);
|
|
81
82
|
const localeRef = useRef(locale);
|
|
83
|
+
/**
|
|
84
|
+
* Track the validation internally so Autosave can determine when to run queue processing again
|
|
85
|
+
* Helps us prevent infinite loops when the queue is processing and the form is invalid
|
|
86
|
+
*/
|
|
87
|
+
const isValidRef = useRef(isValid);
|
|
82
88
|
// Store fields in ref so the autosave func
|
|
83
89
|
// can always retrieve the most to date copies
|
|
84
90
|
// after the timeout has executed
|
|
85
|
-
|
|
91
|
+
// eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
|
|
92
|
+
fieldRef.current = fields;
|
|
86
93
|
// Store modified in ref so the autosave func
|
|
87
94
|
// can bail out if modified becomes false while
|
|
88
95
|
// timing out during autosave
|
|
96
|
+
// eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
|
|
89
97
|
modifiedRef.current = modified;
|
|
90
98
|
// Store locale in ref so the autosave func
|
|
91
99
|
// can always retrieve the most to date locale
|
|
100
|
+
// eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
|
|
92
101
|
localeRef.current = locale;
|
|
93
102
|
const {
|
|
94
103
|
queueTask
|
|
@@ -131,10 +140,10 @@ export const Autosave = ({
|
|
|
131
140
|
const {
|
|
132
141
|
data,
|
|
133
142
|
valid
|
|
134
|
-
} = reduceFieldsToValuesWithValidation(
|
|
143
|
+
} = reduceFieldsToValuesWithValidation(fieldRef.current, true);
|
|
135
144
|
data._status = 'draft';
|
|
136
145
|
const skipSubmission = submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate;
|
|
137
|
-
if (!skipSubmission) {
|
|
146
|
+
if (!skipSubmission && isValidRef.current) {
|
|
138
147
|
let res;
|
|
139
148
|
try {
|
|
140
149
|
res = await fetch(url, {
|
|
@@ -199,7 +208,10 @@ export const Autosave = ({
|
|
|
199
208
|
nonFieldErrors.forEach(err_0 => {
|
|
200
209
|
toast.error(err_0.message || i18n.t('error:unknown'));
|
|
201
210
|
});
|
|
211
|
+
// Set valid to false internally so the queue doesn't process
|
|
212
|
+
isValidRef.current = false;
|
|
202
213
|
setIsValid(false);
|
|
214
|
+
setSubmitted(true);
|
|
203
215
|
hideIndicator();
|
|
204
216
|
return;
|
|
205
217
|
}
|
|
@@ -209,6 +221,8 @@ export const Autosave = ({
|
|
|
209
221
|
// Manually update the data since this function doesn't fire the `submit` function from useForm
|
|
210
222
|
if (document) {
|
|
211
223
|
setIsValid(true);
|
|
224
|
+
// Reset internal state allowing the queue to process
|
|
225
|
+
isValidRef.current = true;
|
|
212
226
|
updateSavedDocumentData(document);
|
|
213
227
|
}
|
|
214
228
|
}
|
|
@@ -222,12 +236,16 @@ export const Autosave = ({
|
|
|
222
236
|
setBackgroundProcessing(false);
|
|
223
237
|
},
|
|
224
238
|
beforeProcess: () => {
|
|
239
|
+
if (!isValidRef.current) {
|
|
240
|
+
isValidRef.current = true;
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
225
243
|
setBackgroundProcessing(true);
|
|
226
244
|
}
|
|
227
245
|
});
|
|
228
246
|
});
|
|
229
247
|
const didMount = useRef(false);
|
|
230
|
-
const
|
|
248
|
+
const previousDebouncedFieldValues = useRef(reduceFieldsToValues(debouncedFields));
|
|
231
249
|
// When debounced fields change, autosave
|
|
232
250
|
useEffect(() => {
|
|
233
251
|
/**
|
|
@@ -239,22 +257,14 @@ export const Autosave = ({
|
|
|
239
257
|
}
|
|
240
258
|
/**
|
|
241
259
|
* Ensure autosave only runs if the form data changes, not every time the entire form state changes
|
|
242
|
-
* Remove `updatedAt` from comparison as it changes on every autosave interval.
|
|
243
260
|
*/
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
...formData
|
|
247
|
-
} = reduceFieldsToValues(debouncedFormState);
|
|
248
|
-
const {
|
|
249
|
-
updatedAt: __,
|
|
250
|
-
...prevFormData
|
|
251
|
-
} = previousDebouncedData.current;
|
|
252
|
-
if (dequal(formData, prevFormData)) {
|
|
261
|
+
const debouncedFieldValues = reduceFieldsToValues(debouncedFields);
|
|
262
|
+
if (dequal(debouncedFieldValues, previousDebouncedFieldValues)) {
|
|
253
263
|
return;
|
|
254
264
|
}
|
|
255
|
-
|
|
265
|
+
previousDebouncedFieldValues.current = debouncedFieldValues;
|
|
256
266
|
handleAutosave();
|
|
257
|
-
}, [
|
|
267
|
+
}, [debouncedFields]);
|
|
258
268
|
/**
|
|
259
269
|
* If component unmounts, clear the autosave timeout
|
|
260
270
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dequal","reduceFieldsToValues","versionDefaults","React","useDeferredValue","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useEffectEvent","useQueues","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","useDocumentDrawerContext","LeaveWithoutSaving","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","incrementVersionCount","lastUpdateTime","mostRecentVersionIsAutosaved","setLastUpdateTime","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","updateSavedDocumentData","onSave","onSaveFromDocumentDrawer","reportUpdate","dispatchFields","isValid","setBackgroundProcessing","setIsValid","formState","modified","submitted","code","locale","i18n","t","versionsConfig","versions","interval","autosaveInterval","drafts","autosave","validateOnDraft","Boolean","validate","_saving","setSaving","saving","debouncedFormState","formStateRef","modifiedRef","localeRef","current","queueTask","autosaveTimeoutRef","handleAutosave","undefined","startTimestamp","endTimestamp","hideIndicator","setTimeout","stopAutoSaveIndicator","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","res","fetch","body","JSON","stringify","credentials","headers","language","_err","newDate","json","status","updatedAt","toISOString","operation","prev","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","document","doc","result","afterProcess","beforeProcess","didMount","previousDebouncedData","_","formData","__","prevFormData","clearTimeout","_jsxs","className","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { reduceFieldsToValues, versionDefaults } from 'payload/shared'\nimport React, { useDeferredValue, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport { useDocumentDrawerContext } from '../DocumentDrawer/Provider.js'\nimport { LeaveWithoutSaving } from '../LeaveWithoutSaving/index.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const {\n docConfig,\n incrementVersionCount,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromDocumentDrawer } = useDocumentDrawerContext()\n\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, isValid, setBackgroundProcessing, setIsValid } = useForm()\n\n const [formState] = useAllFormFields()\n const modified = useFormModified()\n const submitted = useFormSubmitted()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const versionsConfig = docConfig?.versions\n let interval = versionDefaults.autosaveInterval\n\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const validateOnDraft = Boolean(\n docConfig?.versions?.drafts && docConfig?.versions?.drafts.validate,\n )\n\n const [_saving, setSaving] = useState(false)\n\n const saving = useDeferredValue(_saving)\n\n const debouncedFormState = useDebounce(formState, interval)\n\n const formStateRef = useRef(formState)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n formStateRef.current = formState\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const { queueTask } = useQueues()\n\n const autosaveTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const handleAutosave = useEffectEvent(() => {\n autosaveTimeoutRef.current = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const hideIndicator = () => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeoutRef.current = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n stopAutoSaveIndicator()\n }\n }\n\n queueTask(\n async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = reduceFieldsToValuesWithValidation(formStateRef.current, true)\n\n data._status = 'draft'\n\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n let res\n\n try {\n res = await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n })\n } catch (_err) {\n // Swallow Error\n }\n\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n const json = await res.json()\n\n if (res.status === 200) {\n setLastUpdateTime(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n\n // if onSaveFromDocumentDrawer is defined, call it\n if (typeof onSaveFromDocumentDrawer === 'function') {\n void onSaveFromDocumentDrawer({\n ...json,\n operation: 'update',\n })\n }\n\n if (!mostRecentVersionIsAutosaved) {\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(true)\n setUnpublishedVersionCount((prev) => prev + 1)\n }\n }\n\n if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json?.errors) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\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 dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setIsValid(false)\n hideIndicator()\n return\n }\n } else {\n // If it's not an error then we can update the document data inside the context\n const document = json?.doc || json?.result\n\n // Manually update the data since this function doesn't fire the `submit` function from useForm\n if (document) {\n setIsValid(true)\n updateSavedDocumentData(document)\n }\n }\n\n hideIndicator()\n }\n }\n }\n }\n },\n {\n afterProcess: () => {\n setBackgroundProcessing(false)\n },\n beforeProcess: () => {\n setBackgroundProcessing(true)\n },\n },\n )\n })\n\n const didMount = useRef(false)\n const previousDebouncedData = useRef(reduceFieldsToValues(debouncedFormState))\n\n // When debounced fields change, autosave\n useEffect(() => {\n /**\n * Ensure autosave doesn't run on mount\n */\n if (!didMount.current) {\n didMount.current = true\n return\n }\n\n /**\n * Ensure autosave only runs if the form data changes, not every time the entire form state changes\n * Remove `updatedAt` from comparison as it changes on every autosave interval.\n */\n const { updatedAt: _, ...formData } = reduceFieldsToValues(debouncedFormState)\n const { updatedAt: __, ...prevFormData } = previousDebouncedData.current\n\n if (dequal(formData, prevFormData)) {\n return\n }\n\n previousDebouncedData.current = formData\n\n handleAutosave()\n }, [debouncedFormState])\n\n /**\n * If component unmounts, clear the autosave timeout\n */\n useEffect(() => {\n return () => {\n stopAutoSaveIndicator()\n }\n }, [])\n\n const stopAutoSaveIndicator = useEffectEvent(() => {\n if (autosaveTimeoutRef.current) {\n clearTimeout(autosaveTimeoutRef.current)\n }\n\n setSaving(false)\n })\n\n return (\n <div className={baseClass}>\n {validateOnDraft && !isValid && <LeaveWithoutSaving />}\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["dequal","reduceFieldsToValues","versionDefaults","React","useDeferredValue","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useEffectEvent","useQueues","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","useDocumentDrawerContext","LeaveWithoutSaving","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","incrementVersionCount","lastUpdateTime","mostRecentVersionIsAutosaved","setLastUpdateTime","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","updateSavedDocumentData","onSave","onSaveFromDocumentDrawer","reportUpdate","dispatchFields","isValid","setBackgroundProcessing","setIsValid","setSubmitted","fields","modified","submitted","code","locale","i18n","t","versionsConfig","versions","interval","autosaveInterval","drafts","autosave","validateOnDraft","Boolean","validate","_saving","setSaving","saving","debouncedFields","fieldRef","modifiedRef","localeRef","isValidRef","current","queueTask","autosaveTimeoutRef","handleAutosave","undefined","startTimestamp","endTimestamp","hideIndicator","setTimeout","stopAutoSaveIndicator","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","res","fetch","body","JSON","stringify","credentials","headers","language","_err","newDate","json","status","updatedAt","toISOString","operation","prev","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","document","doc","result","afterProcess","beforeProcess","didMount","previousDebouncedFieldValues","debouncedFieldValues","clearTimeout","_jsxs","className","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { reduceFieldsToValues, versionDefaults } from 'payload/shared'\nimport React, { useDeferredValue, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport { useDocumentDrawerContext } from '../DocumentDrawer/Provider.js'\nimport { LeaveWithoutSaving } from '../LeaveWithoutSaving/index.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const {\n docConfig,\n incrementVersionCount,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromDocumentDrawer } = useDocumentDrawerContext()\n\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, isValid, setBackgroundProcessing, setIsValid, setSubmitted } = useForm()\n\n const [fields] = useAllFormFields()\n const modified = useFormModified()\n const submitted = useFormSubmitted()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const versionsConfig = docConfig?.versions\n let interval = versionDefaults.autosaveInterval\n\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const validateOnDraft = Boolean(\n docConfig?.versions?.drafts && docConfig?.versions?.drafts.validate,\n )\n\n const [_saving, setSaving] = useState(false)\n const saving = useDeferredValue(_saving)\n const debouncedFields = useDebounce(fields, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n /**\n * Track the validation internally so Autosave can determine when to run queue processing again\n * Helps us prevent infinite loops when the queue is processing and the form is invalid\n */\n const isValidRef = useRef(isValid)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n localeRef.current = locale\n\n const { queueTask } = useQueues()\n\n const autosaveTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const handleAutosave = useEffectEvent(() => {\n autosaveTimeoutRef.current = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const hideIndicator = () => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeoutRef.current = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n stopAutoSaveIndicator()\n }\n }\n\n queueTask(\n async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = reduceFieldsToValuesWithValidation(fieldRef.current, true)\n\n data._status = 'draft'\n\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission && isValidRef.current) {\n let res\n\n try {\n res = await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n })\n } catch (_err) {\n // Swallow Error\n }\n\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n const json = await res.json()\n\n if (res.status === 200) {\n setLastUpdateTime(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n\n // if onSaveFromDocumentDrawer is defined, call it\n if (typeof onSaveFromDocumentDrawer === 'function') {\n void onSaveFromDocumentDrawer({\n ...json,\n operation: 'update',\n })\n }\n\n if (!mostRecentVersionIsAutosaved) {\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(true)\n setUnpublishedVersionCount((prev) => prev + 1)\n }\n }\n\n if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json?.errors) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\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 dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n // Set valid to false internally so the queue doesn't process\n isValidRef.current = false\n setIsValid(false)\n setSubmitted(true)\n hideIndicator()\n return\n }\n } else {\n // If it's not an error then we can update the document data inside the context\n const document = json?.doc || json?.result\n\n // Manually update the data since this function doesn't fire the `submit` function from useForm\n if (document) {\n setIsValid(true)\n\n // Reset internal state allowing the queue to process\n isValidRef.current = true\n updateSavedDocumentData(document)\n }\n }\n\n hideIndicator()\n }\n }\n }\n }\n },\n {\n afterProcess: () => {\n setBackgroundProcessing(false)\n },\n beforeProcess: () => {\n if (!isValidRef.current) {\n isValidRef.current = true\n return false\n }\n\n setBackgroundProcessing(true)\n },\n },\n )\n })\n\n const didMount = useRef(false)\n const previousDebouncedFieldValues = useRef(reduceFieldsToValues(debouncedFields))\n // When debounced fields change, autosave\n useEffect(() => {\n /**\n * Ensure autosave doesn't run on mount\n */\n if (!didMount.current) {\n didMount.current = true\n return\n }\n\n /**\n * Ensure autosave only runs if the form data changes, not every time the entire form state changes\n */\n const debouncedFieldValues = reduceFieldsToValues(debouncedFields)\n if (dequal(debouncedFieldValues, previousDebouncedFieldValues)) {\n return\n }\n\n previousDebouncedFieldValues.current = debouncedFieldValues\n\n handleAutosave()\n }, [debouncedFields])\n\n /**\n * If component unmounts, clear the autosave timeout\n */\n useEffect(() => {\n return () => {\n stopAutoSaveIndicator()\n }\n }, [])\n\n const stopAutoSaveIndicator = useEffectEvent(() => {\n if (autosaveTimeoutRef.current) {\n clearTimeout(autosaveTimeoutRef.current)\n }\n\n setSaving(false)\n })\n\n return (\n <div className={baseClass}>\n {validateOnDraft && !isValid && <LeaveWithoutSaving />}\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"names":[],"mappings":"
|
|
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;AASrB,wBAAgB,QAAQ,CAAC,EACvB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,EAAE,aAAa,qBAoKf"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
5
|
+
import { formatAdminURL } from 'payload/shared';
|
|
4
6
|
import React, { useCallback, useEffect } from 'react';
|
|
5
7
|
import { Form, useForm } from '../../../forms/Form/index.js';
|
|
6
8
|
import { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js';
|
|
7
9
|
import { useConfig } from '../../../providers/Config/index.js';
|
|
8
10
|
import { useDocumentEvents } from '../../../providers/DocumentEvents/index.js';
|
|
9
11
|
import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
|
|
12
|
+
import { useEditDepth } from '../../../providers/EditDepth/index.js';
|
|
10
13
|
import { OperationProvider } from '../../../providers/Operation/index.js';
|
|
14
|
+
import { useRouteTransition } from '../../../providers/RouteTransition/index.js';
|
|
11
15
|
import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
|
|
12
16
|
import { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js';
|
|
13
17
|
import { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js';
|
|
@@ -16,6 +20,7 @@ import { MoveDocToFolder } from '../../FolderView/MoveDocToFolder/index.js';
|
|
|
16
20
|
import { Upload_v4 } from '../../Upload/index.js';
|
|
17
21
|
import { useFormsManager } from '../FormsManager/index.js';
|
|
18
22
|
import './index.scss';
|
|
23
|
+
import { BulkUploadProvider } from '../index.js';
|
|
19
24
|
const baseClass = 'collection-edit';
|
|
20
25
|
// This component receives props only on _pages_
|
|
21
26
|
// When rendered within a drawer, props are empty
|
|
@@ -33,6 +38,7 @@ export function EditForm({
|
|
|
33
38
|
getDocPreferences,
|
|
34
39
|
hasSavePermission,
|
|
35
40
|
initialState,
|
|
41
|
+
isEditing,
|
|
36
42
|
isInitializing,
|
|
37
43
|
Upload: CustomUpload
|
|
38
44
|
} = useDocumentInfo();
|
|
@@ -44,7 +50,10 @@ export function EditForm({
|
|
|
44
50
|
} = useServerFunctions();
|
|
45
51
|
const {
|
|
46
52
|
config: {
|
|
47
|
-
folders
|
|
53
|
+
folders,
|
|
54
|
+
routes: {
|
|
55
|
+
admin: adminRoute
|
|
56
|
+
}
|
|
48
57
|
},
|
|
49
58
|
getEntityConfig
|
|
50
59
|
} = useConfig();
|
|
@@ -52,9 +61,16 @@ export function EditForm({
|
|
|
52
61
|
const collectionConfig = getEntityConfig({
|
|
53
62
|
collectionSlug: docSlug
|
|
54
63
|
});
|
|
64
|
+
const router = useRouter();
|
|
65
|
+
const depth = useEditDepth();
|
|
66
|
+
const params = useSearchParams();
|
|
55
67
|
const {
|
|
56
68
|
reportUpdate
|
|
57
69
|
} = useDocumentEvents();
|
|
70
|
+
const {
|
|
71
|
+
startRouteTransition
|
|
72
|
+
} = useRouteTransition();
|
|
73
|
+
const locale = params.get('locale');
|
|
58
74
|
const collectionSlug = collectionConfig.slug;
|
|
59
75
|
const [schemaPath] = React.useState(collectionSlug);
|
|
60
76
|
const onSave = useCallback(json => {
|
|
@@ -68,8 +84,17 @@ export function EditForm({
|
|
|
68
84
|
operation: 'create'
|
|
69
85
|
});
|
|
70
86
|
}
|
|
71
|
-
|
|
72
|
-
|
|
87
|
+
if (!isEditing && depth < 2) {
|
|
88
|
+
// Redirect to the same locale if it's been set
|
|
89
|
+
const redirectRoute = formatAdminURL({
|
|
90
|
+
adminRoute,
|
|
91
|
+
path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`
|
|
92
|
+
});
|
|
93
|
+
startRouteTransition(() => router.push(redirectRoute));
|
|
94
|
+
} else {
|
|
95
|
+
resetUploadEdits();
|
|
96
|
+
}
|
|
97
|
+
}, [adminRoute, collectionSlug, depth, isEditing, locale, onSaveFromContext, reportUpdate, resetUploadEdits, router, startRouteTransition]);
|
|
73
98
|
const onChange = useCallback(async ({
|
|
74
99
|
formState: prevFormState,
|
|
75
100
|
submitted: submitted_0
|
|
@@ -99,39 +124,41 @@ export function EditForm({
|
|
|
99
124
|
}, []);
|
|
100
125
|
return /*#__PURE__*/_jsx(OperationProvider, {
|
|
101
126
|
operation: "create",
|
|
102
|
-
children: /*#__PURE__*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
children: /*#__PURE__*/_jsx(BulkUploadProvider, {
|
|
128
|
+
children: /*#__PURE__*/_jsxs(Form, {
|
|
129
|
+
action: action,
|
|
130
|
+
className: `${baseClass}__form`,
|
|
131
|
+
disabled: isInitializing || !hasSavePermission,
|
|
132
|
+
initialState: isInitializing ? undefined : initialState,
|
|
133
|
+
isInitializing: isInitializing,
|
|
134
|
+
method: "POST",
|
|
135
|
+
onChange: [onChange],
|
|
136
|
+
onSuccess: onSave,
|
|
137
|
+
submitted: submitted,
|
|
138
|
+
children: [/*#__PURE__*/_jsx(DocumentFields, {
|
|
139
|
+
BeforeFields: /*#__PURE__*/_jsx(React.Fragment, {
|
|
140
|
+
children: CustomUpload || /*#__PURE__*/_jsx(Upload_v4, {
|
|
141
|
+
collectionSlug: collectionConfig.slug,
|
|
142
|
+
customActions: [folders && collectionConfig.folders && /*#__PURE__*/_jsx(MoveDocToFolder, {
|
|
143
|
+
buttonProps: {
|
|
144
|
+
buttonStyle: 'pill',
|
|
145
|
+
size: 'small'
|
|
146
|
+
},
|
|
147
|
+
folderCollectionSlug: folders.slug,
|
|
148
|
+
folderFieldName: folders.fieldName
|
|
149
|
+
}, "move-doc-to-folder")].filter(Boolean),
|
|
150
|
+
initialState: initialState,
|
|
151
|
+
resetUploadEdits: resetUploadEdits,
|
|
152
|
+
updateUploadEdits: updateUploadEdits,
|
|
153
|
+
uploadConfig: collectionConfig.upload,
|
|
154
|
+
uploadEdits: uploadEdits
|
|
155
|
+
})
|
|
156
|
+
}),
|
|
157
|
+
docPermissions: docPermissions,
|
|
158
|
+
fields: collectionConfig.fields,
|
|
159
|
+
schemaPathSegments: [collectionConfig.slug]
|
|
160
|
+
}), /*#__PURE__*/_jsx(ReportAllErrors, {}), /*#__PURE__*/_jsx(GetFieldProxy, {})]
|
|
161
|
+
})
|
|
135
162
|
})
|
|
136
163
|
});
|
|
137
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","OperationProvider","useServerFunctions","abortAndIgnore","handleAbortRef","useDocumentDrawerContext","DocumentFields","MoveDocToFolder","Upload_v4","useFormsManager","baseClass","EditForm","resetUploadEdits","submitted","updateUploadEdits","uploadEdits","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isInitializing","Upload","CustomUpload","onSave","onSaveFromContext","getFormState","config","folders","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","reportUpdate","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","skipValidation","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","customActions","buttonProps","buttonStyle","size","folderCollectionSlug","folderFieldName","fieldName","filter","Boolean","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","path","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\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 { OperationProvider } from '../../../providers/Operation/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 { MoveDocToFolder } from '../../FolderView/MoveDocToFolder/index.js'\nimport { Upload_v4 } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/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 isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: { folders },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const { reportUpdate } = useDocumentEvents()\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 resetUploadEdits()\n },\n [collectionSlug, onSaveFromContext, reportUpdate, resetUploadEdits],\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 <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 customActions={[\n folders && collectionConfig.folders && (\n <MoveDocToFolder\n buttonProps={{\n buttonStyle: 'pill',\n size: 'small',\n }}\n folderCollectionSlug={folders.slug}\n folderFieldName={folders.fieldName}\n key=\"move-doc-to-folder\"\n />\n ),\n ].filter(Boolean)}\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 </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n useEffect(() => {\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\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":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,WAAW,EAAEC,SAAS,QAAQ;AAI9C,SAASC,IAAI,EAAEC,OAAO,QAAQ;AAE9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,wBAAwB,QAAQ;AACzC,SAASC,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB;AACA;AACA;AAEA,OAAO,SAASC,SAAS;EACvBC,gBAAgB;EAChBC,SAAS;EACTC,iBAAiB;EACjBC;AAAW,CACG;EACd,MAAM;IACJC,MAAM;IACNC,cAAA,EAAgBC,OAAO;IACvBC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,YAAY;IACZC,cAAc;IACdC,MAAA,EAAQC;EAAY,CACrB,GAAGzB,eAAA;EAEJ,MAAM;IAAE0B,MAAA,EAAQC;EAAiB,CAAE,GAAGtB,wBAAA;EAEtC,MAAM;IAAEuB;EAAY,CAAE,GAAG1B,kBAAA;EAEzB,MAAM;IACJ2B,MAAA,EAAQ;MAAEC;IAAO,CAAE;IACnBC;EAAe,CAChB,GAAGjC,SAAA;EAEJ,MAAMkC,gBAAA,GAAmBxC,KAAA,CAAMyC,MAAM,CAAkB;EAEvD,MAAMC,gBAAA,GAAmBH,eAAA,CAAgB;IAAEd,cAAA,EAAgBC;EAAQ;EACnE,MAAM;IAAEiB;EAAY,CAAE,GAAGpC,iBAAA;EAEzB,MAAMkB,cAAA,GAAiBiB,gBAAA,CAAiBE,IAAI;EAE5C,MAAM,CAACC,UAAA,CAAW,GAAG7C,KAAA,CAAM8C,QAAQ,CAACrB,cAAA;EAEpC,MAAMS,MAAA,GAASjC,WAAA,CACZ8C,IAAA;IACCJ,YAAA,CAAa;MACXK,UAAA,EAAYvB,cAAA;MACZwB,SAAA,EAAWF,IAAA,EAAMG,MAAA,EAAQD,SAAA,IAAa,IAAIE,IAAA,GAAOC,WAAW;IAC9D;IAEA,IAAI,OAAOjB,iBAAA,KAAsB,YAAY;MAC3C,KAAKA,iBAAA,CAAkB;QACrB,GAAGY,IAAI;QACPM,SAAA,EAAW;MACb;IACF;IACAjC,gBAAA;EACF,GACA,CAACK,cAAA,EAAgBU,iBAAA,EAAmBQ,YAAA,EAAcvB,gBAAA,CAAiB;EAGrE,MAAMkC,QAAA,GAAkDrD,WAAA,CACtD,OAAO;IAAEsD,SAAA,EAAWC,aAAa;IAAEnC,SAAS,EAATA;EAAS,CAAE;IAC5C,MAAMoC,UAAA,GAAa7C,cAAA,CAAe4B,gBAAA;IAElC,MAAMkB,cAAA,GAAiB,MAAM9B,iBAAA;IAE7B,MAAM;MAAE+B,KAAA,EAAOC;IAAY,CAAE,GAAG,MAAMxB,YAAA,CAAa;MACjDX,cAAA;MACAE,cAAA;MACA+B,cAAA;MACAH,SAAA,EAAWC,aAAA;MACXH,SAAA,EAAW;MACXR,UAAA;MACAgB,MAAA,EAAQJ,UAAA,CAAWI,MAAM;MACzBC,cAAA,EAAgB,CAACzC;IACnB;IAEAmB,gBAAA,CAAiBuB,OAAO,GAAG;IAE3B,OAAOH,YAAA;EACT,GACA,CAACnC,cAAA,EAAgBoB,UAAA,EAAYjB,iBAAA,EAAmBQ,YAAA,EAAcT,cAAA,CAAe;EAG/EzB,SAAA,CAAU;IACR,MAAM8D,aAAA,GAAgBxB,gBAAA,CAAiBuB,OAAO;IAE9C,OAAO;MACLpD,cAAA,CAAeqD,aAAA;IACjB;EACF,GAAG,EAAE;EAEL,oBACEC,IAAA,CAACxD,iBAAA;IAAkB4C,SAAA,EAAU;cAC3B,aAAAa,KAAA,CAAC/D,IAAA;MACCqB,MAAA,EAAQA,MAAA;MACR2C,SAAA,EAAW,GAAGjD,SAAA,QAAiB;MAC/BkD,QAAA,EAAUrC,cAAA,IAAkB,CAACF,iBAAA;MAC7BC,YAAA,EAAcC,cAAA,GAAiBsC,SAAA,GAAYvC,YAAA;MAC3CC,cAAA,EAAgBA,cAAA;MAChBuC,MAAA,EAAO;MACPhB,QAAA,EAAU,CAACA,QAAA,CAAS;MACpBiB,SAAA,EAAWrC,MAAA;MACXb,SAAA,EAAWA,SAAA;8BAEX4C,IAAA,CAACnD,cAAA;QACC0D,YAAA,eACEP,IAAA,CAACjE,KAAA,CAAMyE,QAAQ;oBACZxC,YAAA,iBACCgC,IAAA,CAACjD,SAAA;YACCS,cAAA,EAAgBiB,gBAAA,CAAiBE,IAAI;YACrC8B,aAAA,EAAe,CACbpC,OAAA,IAAWI,gBAAA,CAAiBJ,OAAO,iBACjC2B,IAAA,CAAClD,eAAA;cACC4D,WAAA,EAAa;gBACXC,WAAA,EAAa;gBACbC,IAAA,EAAM;cACR;cACAC,oBAAA,EAAsBxC,OAAA,CAAQM,IAAI;cAClCmC,eAAA,EAAiBzC,OAAA,CAAQ0C;eACrB,sBAGT,CAACC,MAAM,CAACC,OAAA;YACTpD,YAAA,EAAcA,YAAA;YACdV,gBAAA,EAAkBA,gBAAA;YAClBE,iBAAA,EAAmBA,iBAAA;YACnB6D,YAAA,EAAczC,gBAAA,CAAiB0C,MAAM;YACrC7D,WAAA,EAAaA;;;QAKrBI,cAAA,EAAgBA,cAAA;QAChB0D,MAAA,EAAQ3C,gBAAA,CAAiB2C,MAAM;QAC/BC,kBAAA,EAAoB,CAAC5C,gBAAA,CAAiBE,IAAI;uBAE5CqB,IAAA,CAACsB,eAAA,O,aACDtB,IAAA,CAACuB,aAAA;;;AAIT;AAEA,SAASA,cAAA;EACP,MAAM;IAAEC;EAAS,CAAE,GAAGrF,OAAA;EACtB,MAAM;IAAEsF;EAAc,CAAE,GAAGzE,eAAA;EAE3Bf,SAAA,CAAU;IACR;IACAwF,cAAA,CAAe3B,OAAO,GAAG0B,SAAA;EAC3B,GAAG,CAACA,SAAA,EAAWC,cAAA,CAAe;EAE9B,OAAO;AACT;AAEA,SAASH,gBAAA;EACP,MAAM;IAAEI;EAAS,CAAE,GAAGnF,eAAA;EACtB,MAAM;IAAEoF,WAAW;IAAEC;EAAsB,CAAE,GAAG5E,eAAA;EAChD,MAAM6E,aAAA,GAAgB9F,KAAA,CAAMyC,MAAM,CAAC;EAEnC,MAAMsD,oBAAA,GAAuB/F,KAAA,CAAMC,WAAW,CAC3C+F,UAAA;IACC,IAAIA,UAAA,KAAeF,aAAA,CAAc/B,OAAO,EAAE;MACxC;IACF;IACA8B,sBAAA,CAAuB;MAAEG,UAAA;MAAYC,KAAA,EAAOL;IAAY;IACxDE,aAAA,CAAc/B,OAAO,GAAGiC,UAAA;EAC1B,GACA,CAACJ,WAAA,EAAaC,sBAAA,CAAuB;EAGvC,IAAI,CAACF,SAAA,EAAW;IACd,OAAO;EACT;EAEA,oBACE1B,IAAA,CAAC5D,gBAAA;IAAiBgF,MAAA,EAAQM,SAAA,CAAUN,MAAM;IAAEa,IAAA,EAAM,EAAE;IAAEC,aAAA,EAAeJ;;AAEzE","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","MoveDocToFolder","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","folders","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","customActions","buttonProps","buttonStyle","size","folderCollectionSlug","folderFieldName","fieldName","filter","Boolean","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 { MoveDocToFolder } from '../../FolderView/MoveDocToFolder/index.js'\nimport { Upload_v4 } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\nimport { BulkUploadProvider } from '../index.js'\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 folders,\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 customActions={[\n folders && collectionConfig.folders && (\n <MoveDocToFolder\n buttonProps={{\n buttonStyle: 'pill',\n size: 'small',\n }}\n folderCollectionSlug={folders.slug}\n folderFieldName={folders.fieldName}\n key=\"move-doc-to-folder\"\n />\n ),\n ].filter(Boolean)}\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 // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\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":"AAAA;;;AAEA,SAASA,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,QAAQ;AAI9C,SAASC,IAAI,EAAEC,OAAO,QAAQ;AAE9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,wBAAwB,QAAQ;AACzC,SAASC,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,OAAO;AACP,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,SAAA,GAAY;AAElB;AACA;AACA;AAEA,OAAO,SAASC,SAAS;EACvBC,gBAAgB;EAChBC,SAAS;EACTC,iBAAiB;EACjBC;AAAW,CACG;EACd,MAAM;IACJC,MAAM;IACNC,cAAA,EAAgBC,OAAO;IACvBC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,YAAY;IACZC,SAAS;IACTC,cAAc;IACdC,MAAA,EAAQC;EAAY,CACrB,GAAG7B,eAAA;EAEJ,MAAM;IAAE8B,MAAA,EAAQC;EAAiB,CAAE,GAAGxB,wBAAA;EAEtC,MAAM;IAAEyB;EAAY,CAAE,GAAG5B,kBAAA;EAEzB,MAAM;IACJ6B,MAAA,EAAQ;MACNC,OAAO;MACPC,MAAA,EAAQ;QAAEC,KAAA,EAAOC;MAAU;IAAE,CAC9B;IACDC;EAAe,CAChB,GAAGxC,SAAA;EAEJ,MAAMyC,gBAAA,GAAmB/C,KAAA,CAAMgD,MAAM,CAAkB;EAEvD,MAAMC,gBAAA,GAAmBH,eAAA,CAAgB;IAAElB,cAAA,EAAgBC;EAAQ;EACnE,MAAMqB,MAAA,GAASrD,SAAA;EACf,MAAMsD,KAAA,GAAQ1C,YAAA;EACd,MAAM2C,MAAA,GAAStD,eAAA;EACf,MAAM;IAAEuD;EAAY,CAAE,GAAG9C,iBAAA;EACzB,MAAM;IAAE+C;EAAoB,CAAE,GAAG3C,kBAAA;EAEjC,MAAM4C,MAAA,GAASH,MAAA,CAAOI,GAAG,CAAC;EAE1B,MAAM5B,cAAA,GAAiBqB,gBAAA,CAAiBQ,IAAI;EAE5C,MAAM,CAACC,UAAA,CAAW,GAAG1D,KAAA,CAAM2D,QAAQ,CAAC/B,cAAA;EAEpC,MAAMU,MAAA,GAASrC,WAAA,CACZ2D,IAAA;IACCP,YAAA,CAAa;MACXQ,UAAA,EAAYjC,cAAA;MACZkC,SAAA,EAAWF,IAAA,EAAMG,MAAA,EAAQD,SAAA,IAAa,IAAIE,IAAA,GAAOC,WAAW;IAC9D;IAEA,IAAI,OAAO1B,iBAAA,KAAsB,YAAY;MAC3C,KAAKA,iBAAA,CAAkB;QACrB,GAAGqB,IAAI;QACPM,SAAA,EAAW;MACb;IACF;IAEA,IAAI,CAAChC,SAAA,IAAaiB,KAAA,GAAQ,GAAG;MAC3B;MACA,MAAMgB,aAAA,GAAgBpE,cAAA,CAAe;QACnC8C,UAAA;QACAuB,IAAA,EAAM,gBAAgBxC,cAAA,IAAkBgC,IAAA,EAAMS,GAAA,EAAKC,EAAA,GAAKf,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG;MACzF;MAEAD,oBAAA,CAAqB,MAAMJ,MAAA,CAAOqB,IAAI,CAACJ,aAAA;IACzC,OAAO;MACL5C,gBAAA;IACF;EACF,GACA,CACEsB,UAAA,EACAjB,cAAA,EACAuB,KAAA,EACAjB,SAAA,EACAqB,MAAA,EACAhB,iBAAA,EACAc,YAAA,EACA9B,gBAAA,EACA2B,MAAA,EACAI,oBAAA,CACD;EAGH,MAAMkB,QAAA,GAAkDvE,WAAA,CACtD,OAAO;IAAEwE,SAAA,EAAWC,aAAa;IAAElD,SAAS,EAATA;EAAS,CAAE;IAC5C,MAAMmD,UAAA,GAAa7D,cAAA,CAAeiC,gBAAA;IAElC,MAAM6B,cAAA,GAAiB,MAAM7C,iBAAA;IAE7B,MAAM;MAAE8C,KAAA,EAAOC;IAAY,CAAE,GAAG,MAAMtC,YAAA,CAAa;MACjDZ,cAAA;MACAE,cAAA;MACA8C,cAAA;MACAH,SAAA,EAAWC,aAAA;MACXR,SAAA,EAAW;MACXR,UAAA;MACAqB,MAAA,EAAQJ,UAAA,CAAWI,MAAM;MACzBC,cAAA,EAAgB,CAACxD;IACnB;IAEAuB,gBAAA,CAAiBkC,OAAO,GAAG;IAE3B,OAAOH,YAAA;EACT,GACA,CAAClD,cAAA,EAAgB8B,UAAA,EAAY3B,iBAAA,EAAmBS,YAAA,EAAcV,cAAA,CAAe;EAG/E5B,SAAA,CAAU;IACR,MAAMgF,aAAA,GAAgBnC,gBAAA,CAAiBkC,OAAO;IAE9C,OAAO;MACLpE,cAAA,CAAeqE,aAAA;IACjB;EACF,GAAG,EAAE;EAEL,oBACEC,IAAA,CAACzE,iBAAA;IAAkBwD,SAAA,EAAU;cAC3B,aAAAiB,IAAA,CAAC/D,kBAAA;gBACC,aAAAgE,KAAA,CAACjF,IAAA;QACCwB,MAAA,EAAQA,MAAA;QACR0D,SAAA,EAAW,GAAGhE,SAAA,QAAiB;QAC/BiE,QAAA,EAAUnD,cAAA,IAAkB,CAACH,iBAAA;QAC7BC,YAAA,EAAcE,cAAA,GAAiBoD,SAAA,GAAYtD,YAAA;QAC3CE,cAAA,EAAgBA,cAAA;QAChBqD,MAAA,EAAO;QACPhB,QAAA,EAAU,CAACA,QAAA,CAAS;QACpBiB,SAAA,EAAWnD,MAAA;QACXd,SAAA,EAAWA,SAAA;gCAEX2D,IAAA,CAACnE,cAAA;UACC0E,YAAA,eACEP,IAAA,CAACnF,KAAA,CAAM2F,QAAQ;sBACZtD,YAAA,iBACC8C,IAAA,CAACjE,SAAA;cACCU,cAAA,EAAgBqB,gBAAA,CAAiBQ,IAAI;cACrCmC,aAAA,EAAe,CACblD,OAAA,IAAWO,gBAAA,CAAiBP,OAAO,iBACjCyC,IAAA,CAAClE,eAAA;gBACC4E,WAAA,EAAa;kBACXC,WAAA,EAAa;kBACbC,IAAA,EAAM;gBACR;gBACAC,oBAAA,EAAsBtD,OAAA,CAAQe,IAAI;gBAClCwC,eAAA,EAAiBvD,OAAA,CAAQwD;iBACrB,sBAGT,CAACC,MAAM,CAACC,OAAA;cACTnE,YAAA,EAAcA,YAAA;cACdV,gBAAA,EAAkBA,gBAAA;cAClBE,iBAAA,EAAmBA,iBAAA;cACnB4E,YAAA,EAAcpD,gBAAA,CAAiBqD,MAAM;cACrC5E,WAAA,EAAaA;;;UAKrBI,cAAA,EAAgBA,cAAA;UAChByE,MAAA,EAAQtD,gBAAA,CAAiBsD,MAAM;UAC/BC,kBAAA,EAAoB,CAACvD,gBAAA,CAAiBQ,IAAI;yBAE5C0B,IAAA,CAACsB,eAAA,O,aACDtB,IAAA,CAACuB,aAAA;;;;AAKX;AAEA,SAASA,cAAA;EACP,MAAM;IAAEC;EAAS,CAAE,GAAGvG,OAAA;EACtB,MAAM;IAAEwG;EAAc,CAAE,GAAGzF,eAAA;EAE3BjB,SAAA,CAAU;IACR;IACA0G,cAAA,CAAe3B,OAAO,GAAG0B,SAAA;EAC3B,GAAG,CAACA,SAAA,EAAWC,cAAA,CAAe;EAE9B,OAAO;AACT;AAEA,SAASH,gBAAA;EACP,MAAM;IAAEI;EAAS,CAAE,GAAGrG,eAAA;EACtB,MAAM;IAAEsG,WAAW;IAAEC;EAAsB,CAAE,GAAG5F,eAAA;EAChD,MAAM6F,aAAA,GAAgBhH,KAAA,CAAMgD,MAAM,CAAC;EAEnC,MAAMiE,oBAAA,GAAuBjH,KAAA,CAAMC,WAAW,CAC3CiH,UAAA;IACC,IAAIA,UAAA,KAAeF,aAAA,CAAc/B,OAAO,EAAE;MACxC;IACF;IACA8B,sBAAA,CAAuB;MAAEG,UAAA;MAAYC,KAAA,EAAOL;IAAY;IACxDE,aAAA,CAAc/B,OAAO,GAAGiC,UAAA;EAC1B,GACA,CAACJ,WAAA,EAAaC,sBAAA,CAAuB;EAGvC,IAAI,CAACF,SAAA,EAAW;IACd,OAAO;EACT;EAEA,oBACE1B,IAAA,CAAC9E,gBAAA;IAAiBkG,MAAA,EAAQM,SAAA,CAAUN,MAAM;IAAEnC,IAAA,EAAM,EAAE;IAAEgD,aAAA,EAAeH;;AAEzE","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ClientCollectionConfig } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { State } from '../FormsManager/reducer.js';
|
|
4
|
-
import type
|
|
4
|
+
import { type EditManyBulkUploadsProps } from './index.js';
|
|
5
5
|
import './index.scss';
|
|
6
6
|
import '../../../forms/RenderFields/index.scss';
|
|
7
7
|
export declare const EditManyBulkUploadsDrawerContent: React.FC<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,SAAS,CAAA;AAKjE,OAAO,KAAoD,MAAM,OAAO,CAAA;AAKxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,SAAS,CAAA;AAKjE,OAAO,KAAoD,MAAM,OAAO,CAAA;AAKxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAYvD,OAAO,EAAa,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,cAAc,CAAA;AACrB,OAAO,wCAAwC,CAAA;AAE/C,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC,EAAE,CACrD;IACE,UAAU,EAAE,sBAAsB,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CACtB,GAAG,wBAAwB,CAyK7B,CAAA"}
|
|
@@ -7,7 +7,6 @@ import { unflatten } from 'payload/shared';
|
|
|
7
7
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
8
|
import { Button } from '../../../elements/Button/index.js';
|
|
9
9
|
import { Form } from '../../../forms/Form/index.js';
|
|
10
|
-
import { FieldPathContext } from '../../../forms/RenderFields/context.js';
|
|
11
10
|
import { RenderField } from '../../../forms/RenderFields/RenderField.js';
|
|
12
11
|
import { XIcon } from '../../../icons/X/index.js';
|
|
13
12
|
import { useAuth } from '../../../providers/Auth/index.js';
|
|
@@ -151,25 +150,22 @@ export const EditManyBulkUploadsDrawerContent = props => {
|
|
|
151
150
|
permissions: collectionPermissions.fields
|
|
152
151
|
}), selectedFields.length === 0 ? null : /*#__PURE__*/_jsx("div", {
|
|
153
152
|
className: "render-fields",
|
|
154
|
-
children:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
permissions: fieldPermissions
|
|
171
|
-
}, `${path}-${i}`);
|
|
172
|
-
})
|
|
153
|
+
children: selectedFields.map((option_2, i) => {
|
|
154
|
+
const {
|
|
155
|
+
value: {
|
|
156
|
+
field,
|
|
157
|
+
fieldPermissions,
|
|
158
|
+
path
|
|
159
|
+
}
|
|
160
|
+
} = option_2;
|
|
161
|
+
return /*#__PURE__*/_jsx(RenderField, {
|
|
162
|
+
clientFieldConfig: field,
|
|
163
|
+
indexPath: "",
|
|
164
|
+
parentPath: "",
|
|
165
|
+
parentSchemaPath: "",
|
|
166
|
+
path: path,
|
|
167
|
+
permissions: fieldPermissions
|
|
168
|
+
}, `${path}-${i}`);
|
|
173
169
|
})
|
|
174
170
|
}), /*#__PURE__*/_jsx("div", {
|
|
175
171
|
className: `${baseClass}__sidebar-wrap`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["useModal","getTranslation","unflatten","React","useCallback","useEffect","useMemo","useState","Button","Form","FieldPathContext","RenderField","XIcon","useAuth","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","FieldSelect","useFormsManager","baseClass","EditManyBulkUploadsDrawerContent","props","collection","fields","labels","plural","singular","drawerSlug","forms","isInitializing","setIsInitializing","permissions","i18n","t","closeModal","bulkUpdateForm","getFormState","abortFormStateRef","useRef","selectedFields","setSelectedFields","collectionPermissions","collections","slug","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","skipValidation","current","abortFormState","handleSubmit","pairedData","onFieldSelect","dispatchFields","selected","type","_jsxs","className","_jsx","count","length","label","id","onClick","onSubmit","undefined","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath"],"sources":["../../../../src/elements/BulkUpload/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, SelectType } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { unflatten } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../../FieldSelect/index.js'\nimport type { FieldOption } from '../../FieldSelect/reduceFieldOptions.js'\nimport type { State } from '../FormsManager/reducer.js'\nimport type { EditManyBulkUploadsProps } from './index.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { Form } from '../../../forms/Form/index.js'\nimport { FieldPathContext } from '../../../forms/RenderFields/context.js'\nimport { RenderField } from '../../../forms/RenderFields/RenderField.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { FieldSelect } from '../../FieldSelect/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { baseClass } from './index.js'\nimport './index.scss'\nimport '../../../forms/RenderFields/index.scss'\n\nexport const EditManyBulkUploadsDrawerContent: React.FC<\n {\n collection: ClientCollectionConfig\n drawerSlug: string\n forms: State['forms']\n } & EditManyBulkUploadsProps\n> = (props) => {\n const {\n collection: { fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n forms,\n } = props\n\n const [isInitializing, setIsInitializing] = useState(false)\n const { permissions } = useAuth()\n const { i18n, t } = useTranslation()\n const { closeModal } = useModal()\n const { bulkUpdateForm } = useFormsManager()\n const { getFormState } = useServerFunctions()\n const abortFormStateRef = React.useRef<AbortController>(null)\n\n const [selectedFields, setSelectedFields] = useState<FieldOption[]>([])\n const collectionPermissions = permissions?.collections?.[collection.slug]\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const handleSubmit: FormProps['onSubmit'] = useCallback(\n (formState) => {\n const pairedData = selectedFields.reduce((acc, option) => {\n if (formState[option.value.path]) {\n acc[option.value.path] = formState[option.value.path].value\n }\n return acc\n }, {})\n\n void bulkUpdateForm(pairedData, () => closeModal(drawerSlug))\n },\n [closeModal, drawerSlug, bulkUpdateForm, selectedFields],\n )\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection, collectionPermissions],\n )\n\n return (\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count: forms.length,\n label: getTranslation(forms.length > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSubmit={handleSubmit}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n <FieldPathContext value={undefined}>\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </FieldPathContext>\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n <Button type=\"submit\">{t('general:applyChanges')}</Button>\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["useModal","getTranslation","unflatten","React","useCallback","useEffect","useMemo","useState","Button","Form","RenderField","XIcon","useAuth","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","FieldSelect","useFormsManager","baseClass","EditManyBulkUploadsDrawerContent","props","collection","fields","labels","plural","singular","drawerSlug","forms","isInitializing","setIsInitializing","permissions","i18n","t","closeModal","bulkUpdateForm","getFormState","abortFormStateRef","useRef","selectedFields","setSelectedFields","collectionPermissions","collections","slug","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","skipValidation","current","abortFormState","handleSubmit","pairedData","onFieldSelect","dispatchFields","selected","type","_jsxs","className","_jsx","count","length","label","id","onClick","onSubmit","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath"],"sources":["../../../../src/elements/BulkUpload/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, SelectType } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { unflatten } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../../FieldSelect/index.js'\nimport type { FieldOption } from '../../FieldSelect/reduceFieldOptions.js'\nimport type { State } from '../FormsManager/reducer.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { Form } from '../../../forms/Form/index.js'\nimport { RenderField } from '../../../forms/RenderFields/RenderField.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { FieldSelect } from '../../FieldSelect/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { baseClass, type EditManyBulkUploadsProps } from './index.js'\nimport './index.scss'\nimport '../../../forms/RenderFields/index.scss'\n\nexport const EditManyBulkUploadsDrawerContent: React.FC<\n {\n collection: ClientCollectionConfig\n drawerSlug: string\n forms: State['forms']\n } & EditManyBulkUploadsProps\n> = (props) => {\n const {\n collection: { fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n forms,\n } = props\n\n const [isInitializing, setIsInitializing] = useState(false)\n const { permissions } = useAuth()\n const { i18n, t } = useTranslation()\n const { closeModal } = useModal()\n const { bulkUpdateForm } = useFormsManager()\n const { getFormState } = useServerFunctions()\n const abortFormStateRef = React.useRef<AbortController>(null)\n\n const [selectedFields, setSelectedFields] = useState<FieldOption[]>([])\n const collectionPermissions = permissions?.collections?.[collection.slug]\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const handleSubmit: FormProps['onSubmit'] = useCallback(\n (formState) => {\n const pairedData = selectedFields.reduce((acc, option) => {\n if (formState[option.value.path]) {\n acc[option.value.path] = formState[option.value.path].value\n }\n return acc\n }, {})\n\n void bulkUpdateForm(pairedData, () => closeModal(drawerSlug))\n },\n [closeModal, drawerSlug, bulkUpdateForm, selectedFields],\n )\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection, collectionPermissions],\n )\n\n return (\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count: forms.length,\n label: getTranslation(forms.length > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSubmit={handleSubmit}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n <Button type=\"submit\">{t('general:applyChanges')}</Button>\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAezC,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,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACxD,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,
|
|
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;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAezC,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,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACxD,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,qBAmdnE;AAED,wBAAgB,eAAe,wBAE9B"}
|