@payloadcms/ui 3.21.0-canary.db74962 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +20 -10
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -2
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +4 -0
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +0 -1
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +9 -6
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +2 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +6 -2
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.scss +5 -0
- package/dist/elements/ReactSelect/types.d.ts +6 -1
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +9 -6
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +4 -3
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +6 -6
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +12 -10
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +100 -88
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +3 -3
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +1 -0
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +41 -28
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +47 -1
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +46 -39
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +4 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +9 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +22 -10
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +9 -2
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +5 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +3 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +38 -34
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useEffectEvent.d.ts +2 -0
- package/dist/hooks/useEffectEvent.d.ts.map +1 -0
- package/dist/hooks/useEffectEvent.js +57 -0
- package/dist/hooks/useEffectEvent.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +12 -5
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +1 -0
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/package.json +5 -5
- package/dist/hooks/useIgnoredEffect.d.ts +0 -21
- package/dist/hooks/useIgnoredEffect.d.ts.map +0 -1
- package/dist/hooks/useIgnoredEffect.js +0 -41
- package/dist/hooks/useIgnoredEffect.js.map +0 -1
package/dist/forms/Form/index.js
CHANGED
|
@@ -7,7 +7,8 @@ import { serialize } from 'object-to-formdata';
|
|
|
7
7
|
import { deepCopyObjectSimpleWithoutReactComponents, getDataByPath as getDataByPathFunc, getSiblingData as getSiblingDataFunc, reduceFieldsToValues, wait } from 'payload/shared';
|
|
8
8
|
import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react';
|
|
9
9
|
import { toast } from 'sonner';
|
|
10
|
-
import {
|
|
10
|
+
import { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js';
|
|
11
|
+
import { useEffectEvent } from '../../hooks/useEffectEvent.js';
|
|
11
12
|
import { useThrottledEffect } from '../../hooks/useThrottledEffect.js';
|
|
12
13
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
13
14
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -18,7 +19,7 @@ import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
|
18
19
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
19
20
|
import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
|
|
20
21
|
import { requests } from '../../utilities/api.js';
|
|
21
|
-
import { DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext } from './context.js';
|
|
22
|
+
import { DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useDocumentForm } from './context.js';
|
|
22
23
|
import { errorMessages } from './errorMessages.js';
|
|
23
24
|
import { fieldReducer } from './fieldReducer.js';
|
|
24
25
|
import { initContextState } from './initContextState.js';
|
|
@@ -55,6 +56,7 @@ export const Form = props => {
|
|
|
55
56
|
} = props;
|
|
56
57
|
const method = 'method' in props ? props?.method : undefined;
|
|
57
58
|
const router = useRouter();
|
|
59
|
+
const documentForm = useDocumentForm();
|
|
58
60
|
const {
|
|
59
61
|
code: locale
|
|
60
62
|
} = useLocale();
|
|
@@ -92,8 +94,7 @@ export const Form = props => {
|
|
|
92
94
|
const validateForm = useCallback(async () => {
|
|
93
95
|
const validatedFieldState = {};
|
|
94
96
|
let isValid = true;
|
|
95
|
-
const
|
|
96
|
-
const data = dataFromContext;
|
|
97
|
+
const data = contextRef.current.getData();
|
|
97
98
|
const validationPromises = Object.entries(contextRef.current.fields).map(async ([path, field]) => {
|
|
98
99
|
const validatedField = field;
|
|
99
100
|
if (field.passesCondition !== false) {
|
|
@@ -107,7 +108,9 @@ export const Form = props => {
|
|
|
107
108
|
...field,
|
|
108
109
|
id,
|
|
109
110
|
collectionSlug,
|
|
110
|
-
data
|
|
111
|
+
// If there is a parent document form, we can get the data from that form
|
|
112
|
+
blockData: undefined,
|
|
113
|
+
data: documentForm?.getData ? documentForm.getData() : data,
|
|
111
114
|
event: 'submit',
|
|
112
115
|
operation,
|
|
113
116
|
preferences: {},
|
|
@@ -142,7 +145,7 @@ export const Form = props => {
|
|
|
142
145
|
});
|
|
143
146
|
}
|
|
144
147
|
return isValid;
|
|
145
|
-
}, [collectionSlug, config, dispatchFields, id, operation, t, user]);
|
|
148
|
+
}, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm]);
|
|
146
149
|
const submit = useCallback(async (options = {}, e) => {
|
|
147
150
|
const {
|
|
148
151
|
action: actionArg = action,
|
|
@@ -532,39 +535,45 @@ export const Form = props => {
|
|
|
532
535
|
setModified(false);
|
|
533
536
|
}, [locale]);
|
|
534
537
|
const classes = [className, baseClass].filter(Boolean).join(' ');
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
538
|
+
const executeOnChange = useEffectEvent(async submitted_0 => {
|
|
539
|
+
if (Array.isArray(onChange)) {
|
|
540
|
+
let revalidatedFormState_0 = contextRef.current.fields;
|
|
541
|
+
for (const onChangeFn of onChange) {
|
|
542
|
+
// Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request
|
|
543
|
+
revalidatedFormState_0 = await onChangeFn({
|
|
544
|
+
formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),
|
|
545
|
+
submitted: submitted_0
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
if (!revalidatedFormState_0) {
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
const {
|
|
552
|
+
changed,
|
|
553
|
+
newState: newState_0
|
|
554
|
+
} = mergeServerFormState({
|
|
555
|
+
existingState: contextRef.current.fields || {},
|
|
556
|
+
incomingState: revalidatedFormState_0
|
|
557
|
+
});
|
|
558
|
+
if (changed) {
|
|
559
|
+
dispatchFields({
|
|
560
|
+
type: 'REPLACE_STATE',
|
|
561
|
+
optimize: false,
|
|
562
|
+
state: newState_0
|
|
555
563
|
});
|
|
556
|
-
if (changed) {
|
|
557
|
-
dispatchFields({
|
|
558
|
-
type: 'REPLACE_STATE',
|
|
559
|
-
optimize: false,
|
|
560
|
-
state: newState_0
|
|
561
|
-
});
|
|
562
|
-
}
|
|
563
564
|
}
|
|
564
|
-
};
|
|
565
|
-
if (modified) {
|
|
566
|
-
void executeOnChange();
|
|
567
565
|
}
|
|
566
|
+
});
|
|
567
|
+
const prevFields = useRef(contextRef.current.fields);
|
|
568
|
+
const isFirstRenderRef = useRef(true);
|
|
569
|
+
useDebouncedEffect(() => {
|
|
570
|
+
if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {
|
|
571
|
+
if (modified) {
|
|
572
|
+
void executeOnChange(submitted);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
isFirstRenderRef.current = false;
|
|
576
|
+
prevFields.current = contextRef.current.fields;
|
|
568
577
|
},
|
|
569
578
|
/*
|
|
570
579
|
Make sure we trigger this whenever modified changes (not just when `fields` changes),
|
|
@@ -573,9 +582,7 @@ export const Form = props => {
|
|
|
573
582
|
`fields` updates before `modified`, because setModified is in a setTimeout.
|
|
574
583
|
So on the first change, modified is false, so we don't trigger the effect even though we should.
|
|
575
584
|
**/
|
|
576
|
-
[
|
|
577
|
-
delay: 250
|
|
578
|
-
});
|
|
585
|
+
[modified, submitted, contextRef.current.fields], 250);
|
|
579
586
|
const DocumentFormContextComponent = isDocumentForm ? DocumentFormContext.Provider : React.Fragment;
|
|
580
587
|
const documentFormContextProps = isDocumentForm ? {
|
|
581
588
|
value: contextRef.current
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useIgnoredEffectDebounced","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","requests","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","getFormState","config","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","delay","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","_jsx","noValidate","ref","useAllFormFields","useDocumentForm","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useIgnoredEffectDebounced } from '../../hooks/useIgnoredEffect.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\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?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>((overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useIgnoredEffectDebounced(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) {\n void executeOnChange()\n }\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [contextRef.current.fields, modified, submitted],\n [dispatchFields, onChange],\n {\n delay: 250,\n },\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n return (\n <form\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </form>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","requests","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","getFormState","config","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","data","getData","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","prevFields","isFirstRenderRef","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","_jsx","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\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?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>((overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n const prevFields = useRef(contextRef.current.fields)\n const isFirstRenderRef = useRef(true)\n\n useDebouncedEffect(\n () => {\n if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {\n if (modified) {\n void executeOnChange(submitted)\n }\n }\n\n isFirstRenderRef.current = false\n prevFields.current = contextRef.current.fields\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [modified, submitted, contextRef.current.fields],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n return (\n <form\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </form>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,10 @@ export type AddFieldStatePromiseArgs = {
|
|
|
6
6
|
* if all parents are localized, then the field is localized
|
|
7
7
|
*/
|
|
8
8
|
anyParentLocalized?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Data of the nearest parent block, or undefined
|
|
11
|
+
*/
|
|
12
|
+
blockData: Data | undefined;
|
|
9
13
|
clientFieldSchemaMap?: ClientFieldSchemaMap;
|
|
10
14
|
collectionSlug?: string;
|
|
11
15
|
data: Data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAE3B,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAE3B,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAotBvF,CAAA"}
|
|
@@ -12,6 +12,7 @@ export const addFieldStatePromise = async args => {
|
|
|
12
12
|
id,
|
|
13
13
|
addErrorPathToParent: addErrorPathToParentArg,
|
|
14
14
|
anyParentLocalized = false,
|
|
15
|
+
blockData,
|
|
15
16
|
clientFieldSchemaMap,
|
|
16
17
|
collectionSlug,
|
|
17
18
|
data,
|
|
@@ -57,6 +58,7 @@ export const addFieldStatePromise = async args => {
|
|
|
57
58
|
if (typeof field?.access?.read === 'function') {
|
|
58
59
|
hasPermission = await field.access.read({
|
|
59
60
|
id,
|
|
61
|
+
blockData,
|
|
60
62
|
data: fullData,
|
|
61
63
|
req,
|
|
62
64
|
siblingData: data
|
|
@@ -82,6 +84,7 @@ export const addFieldStatePromise = async args => {
|
|
|
82
84
|
validationResult = await validate(data?.[field.name], {
|
|
83
85
|
...field,
|
|
84
86
|
id,
|
|
87
|
+
blockData,
|
|
85
88
|
collectionSlug,
|
|
86
89
|
data: fullData,
|
|
87
90
|
event: 'onChange',
|
|
@@ -143,6 +146,7 @@ export const addFieldStatePromise = async args => {
|
|
|
143
146
|
id,
|
|
144
147
|
addErrorPathToParent,
|
|
145
148
|
anyParentLocalized: field.localized || anyParentLocalized,
|
|
149
|
+
blockData,
|
|
146
150
|
clientFieldSchemaMap,
|
|
147
151
|
collectionSlug,
|
|
148
152
|
data: row,
|
|
@@ -268,6 +272,7 @@ export const addFieldStatePromise = async args => {
|
|
|
268
272
|
id,
|
|
269
273
|
addErrorPathToParent,
|
|
270
274
|
anyParentLocalized: field.localized || anyParentLocalized,
|
|
275
|
+
blockData: row,
|
|
271
276
|
clientFieldSchemaMap,
|
|
272
277
|
collectionSlug,
|
|
273
278
|
data: row,
|
|
@@ -340,6 +345,7 @@ export const addFieldStatePromise = async args => {
|
|
|
340
345
|
id,
|
|
341
346
|
addErrorPathToParent,
|
|
342
347
|
anyParentLocalized: field.localized || anyParentLocalized,
|
|
348
|
+
blockData,
|
|
343
349
|
clientFieldSchemaMap,
|
|
344
350
|
collectionSlug,
|
|
345
351
|
data: data?.[field.name] || {},
|
|
@@ -386,6 +392,7 @@ export const addFieldStatePromise = async args => {
|
|
|
386
392
|
if (typeof field.filterOptions === 'function') {
|
|
387
393
|
const query = await getFilterOptionsQuery(field.filterOptions, {
|
|
388
394
|
id,
|
|
395
|
+
blockData,
|
|
389
396
|
data: fullData,
|
|
390
397
|
relationTo: field.relationTo,
|
|
391
398
|
req,
|
|
@@ -458,6 +465,7 @@ export const addFieldStatePromise = async args => {
|
|
|
458
465
|
// passthrough parent functionality
|
|
459
466
|
addErrorPathToParent: addErrorPathToParentArg,
|
|
460
467
|
anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,
|
|
468
|
+
blockData,
|
|
461
469
|
clientFieldSchemaMap,
|
|
462
470
|
collectionSlug,
|
|
463
471
|
data,
|
|
@@ -519,6 +527,7 @@ export const addFieldStatePromise = async args => {
|
|
|
519
527
|
id,
|
|
520
528
|
addErrorPathToParent: addErrorPathToParentArg,
|
|
521
529
|
anyParentLocalized: tab.localized || anyParentLocalized,
|
|
530
|
+
blockData,
|
|
522
531
|
clientFieldSchemaMap,
|
|
523
532
|
collectionSlug,
|
|
524
533
|
data: isNamedTab ? data?.[tab.name] || {} : data,
|