@payloadcms/ui 3.28.0-canary.4 → 3.28.0-internal.2b0876e
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/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +19 -16
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +2 -0
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-L6GW2VQ6.js → CodeEditor-TQ5ADFPC.js} +2 -2
- package/dist/exports/client/{chunk-ZZDNSFEW.js → chunk-LMYT7O7U.js} +6 -6
- package/dist/exports/client/chunk-LMYT7O7U.js.map +7 -0
- package/dist/exports/client/index.js +8 -8
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/index.js +1 -1
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.js +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +3 -1
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +2 -0
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +4 -2
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +102 -91
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +8 -6
- package/dist/providers/Locale/index.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/exports/client/chunk-ZZDNSFEW.js.map +0 -7
- /package/dist/exports/client/{CodeEditor-L6GW2VQ6.js.map → CodeEditor-TQ5ADFPC.js.map} +0 -0
|
@@ -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","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","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","el","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","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","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","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","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","El","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, 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 { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\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 el,\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 const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\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 /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\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 setIsValid(isValid)\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 setIsValid(isValid)\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 setIsValid(isValid)\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 = await 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 startRouteTransition(() => 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 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 setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={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 startRouteTransition,\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>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let 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 handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\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 [collectionSlug, getUploadHandler],\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.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\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 contextRef.current.isValid = isValid\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 const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\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 <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\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","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","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","el","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","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","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","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","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","El","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, 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 { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\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 el,\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 const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\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 /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\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 const pathSegments = path ? path.split('.') : []\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 path: pathSegments,\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 setIsValid(isValid)\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 setIsValid(isValid)\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 setIsValid(isValid)\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 = await 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 startRouteTransition(() => 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 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 setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={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 startRouteTransition,\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>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let 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 handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\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 [collectionSlug, getUploadHandler],\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.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\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 contextRef.current.isValid = isValid\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 const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\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 <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/NullifyField/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/NullifyField/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAsDhE,CAAA"}
|
|
@@ -25,11 +25,13 @@ export const NullifyLocaleField = t0 => {
|
|
|
25
25
|
localization
|
|
26
26
|
} = t1;
|
|
27
27
|
const [checked, setChecked] = React.useState(typeof fieldValue !== "number");
|
|
28
|
-
const defaultLocale = localization && localization.defaultLocale ? localization.defaultLocale : "en";
|
|
29
28
|
const {
|
|
30
29
|
t
|
|
31
30
|
} = useTranslation();
|
|
32
|
-
if (!localized ||
|
|
31
|
+
if (!localized || !localization) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
if (localization.defaultLocale === currentLocale || !localization.fallback) {
|
|
33
35
|
return null;
|
|
34
36
|
}
|
|
35
37
|
if (fieldValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","Banner","CheckboxField","useConfig","useLocale","useTranslation","NullifyLocaleField","t0","$","fieldValue","localized","path","code","currentLocale","config","t1","localization","checked","setChecked","useState","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","Banner","CheckboxField","useConfig","useLocale","useTranslation","NullifyLocaleField","t0","$","fieldValue","localized","path","code","currentLocale","config","t1","localization","checked","setChecked","useState","t","defaultLocale","fallback","hideCheckbox","Array","isArray","length","t2","_jsx","children","field","name","label","id","replace","schemaPath"],"sources":["../../../src/forms/NullifyField/index.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\ntype NullifyLocaleFieldProps = {\n readonly fieldValue?: [] | null | number\n readonly localized: boolean\n readonly path: string\n}\n\nexport const NullifyLocaleField: React.FC<NullifyLocaleFieldProps> = ({\n fieldValue,\n localized,\n path,\n}) => {\n const { code: currentLocale } = useLocale()\n const {\n config: { localization },\n } = useConfig()\n const [checked, setChecked] = React.useState<boolean>(typeof fieldValue !== 'number')\n const { t } = useTranslation()\n\n if (!localized || !localization) {\n // hide when field is not localized or localization is not enabled\n return null\n }\n\n if (localization.defaultLocale === currentLocale || !localization.fallback) {\n // if editing default locale or when fallback is disabled\n return null\n }\n\n if (fieldValue) {\n let hideCheckbox = false\n if (typeof fieldValue === 'number' && fieldValue > 0) {\n hideCheckbox = true\n }\n if (Array.isArray(fieldValue) && fieldValue.length > 0) {\n hideCheckbox = true\n }\n\n if (hideCheckbox) {\n if (checked) {\n setChecked(false)\n } // uncheck when field has value\n return null\n }\n }\n\n return (\n <Banner>\n <CheckboxField\n checked={checked}\n field={{\n name: '',\n label: t('general:fallbackToDefaultLocale'),\n }}\n id={`field-${path.replace(/\\./g, '__')}`}\n path={path}\n schemaPath=\"\"\n // onToggle={onChange}\n />\n </Banner>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,YAAYC,KAAA,MAAW;AAEvB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAQ/B,OAAO,MAAMC,kBAAA,GAAwDC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAJ,EAIrE;EACC;IAAAK,IAAA,EAAAC;EAAA,IAAgCT,SAAA;EAChC;IAAAU,MAAA,EAAAC;EAAA,IAEIZ,SAAA;EADM;IAAAa;EAAA,IAAAD,EAAgB;EAE1B,OAAAE,OAAA,EAAAC,UAAA,IAA8BlB,KAAA,CAAAmB,QAAA,CAAwB,OAAOV,UAAA,KAAe;EAC5E;IAAAW;EAAA,IAAcf,cAAA;EAAA,IAEV,CAACK,SAAA,KAAcM,YAAA;IAAA;EAAA;EAAA,IAKfA,YAAA,CAAAK,aAAA,KAA+BR,aAAA,KAAkBG,YAAA,CAAAM,QAAqB;IAAA;EAAA;EAAA,IAKtEb,UAAA;IACF,IAAAc,YAAA;IAAmB,IACf,OAAOd,UAAA,KAAe,YAAYA,UAAA,IAAa;MACjDc,YAAA,CAAAA,CAAA,CAAAA,IAAA;IAAA;IAAA,IAEEC,KAAA,CAAAC,OAAA,CAAchB,UAAA,KAAeA,UAAA,CAAAiB,MAAA,IAAoB;MACnDH,YAAA,CAAAA,CAAA,CAAAA,IAAA;IAAA;IAAA,IAGEA,YAAA;MAAA,IACEN,OAAA;QACFC,UAAA,MAAW;MAAA;MAAA;IAAA;EAAA;EAAA,IAAAS,EAAA;EAAA,IAAAnB,CAAA,QAAAS,OAAA,IAAAT,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAY,CAAA;IAOfO,EAAA,GAAAC,IAAA,CAAA3B,MAAA;MAAA4B,QAAA,EACED,IAAA,CAAA1B,aAAA;QAAAe,OAAA;QAAAa,KAAA;UAAAC,IAAA,EAGU;UAAAC,KAAA,EACCZ,CAAA,CAAE;QAAA;QAAAa,EAAA,EAEP,SAAStB,IAAA,CAAAuB,OAAA,QAAoB,OAAO;QAAAvB,IAAA;QAAAwB,UAAA,EAE7B;MAAA,C;;;;;;;;;SATfR,E;CAcJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAkBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,WAAY,OAAO,KAAG,SAAS,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAkBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,WAAY,OAAO,KAAG,SAAS,CAAC,MAAM,CAqMpE,CAAA"}
|
|
@@ -15,7 +15,7 @@ import { useDocumentForm, useForm, useFormFields, useFormInitializing, useFormMo
|
|
|
15
15
|
* @see https://payloadcms.com/docs/admin/react-hooks#usefield
|
|
16
16
|
*/
|
|
17
17
|
export const useField = options => {
|
|
18
|
-
const $ = _c(
|
|
18
|
+
const $ = _c(61);
|
|
19
19
|
const {
|
|
20
20
|
disableFormData: t0,
|
|
21
21
|
hasRows,
|
|
@@ -69,9 +69,18 @@ export const useField = options => {
|
|
|
69
69
|
const prevValid = useRef(valid);
|
|
70
70
|
const prevErrorMessage = useRef(field?.errorMessage);
|
|
71
71
|
let t2;
|
|
72
|
-
if ($[2] !==
|
|
73
|
-
t2 = (
|
|
74
|
-
|
|
72
|
+
if ($[2] !== path) {
|
|
73
|
+
t2 = path ? path.split(".") : [];
|
|
74
|
+
$[2] = path;
|
|
75
|
+
$[3] = t2;
|
|
76
|
+
} else {
|
|
77
|
+
t2 = $[3];
|
|
78
|
+
}
|
|
79
|
+
const pathSegments = t2;
|
|
80
|
+
let t3;
|
|
81
|
+
if ($[4] !== disableFormData || $[5] !== dispatchField || $[6] !== hasRows || $[7] !== modified || $[8] !== path || $[9] !== setModified) {
|
|
82
|
+
t3 = (e, t4) => {
|
|
83
|
+
const disableModifyingForm = t4 === undefined ? false : t4;
|
|
75
84
|
const val = e && e.target ? e.target.value : e;
|
|
76
85
|
dispatchField({
|
|
77
86
|
type: "UPDATE",
|
|
@@ -89,71 +98,71 @@ export const useField = options => {
|
|
|
89
98
|
}
|
|
90
99
|
}
|
|
91
100
|
};
|
|
92
|
-
$[
|
|
93
|
-
$[
|
|
94
|
-
$[
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
101
|
+
$[4] = disableFormData;
|
|
102
|
+
$[5] = dispatchField;
|
|
103
|
+
$[6] = hasRows;
|
|
104
|
+
$[7] = modified;
|
|
105
|
+
$[8] = path;
|
|
106
|
+
$[9] = setModified;
|
|
107
|
+
$[10] = t3;
|
|
99
108
|
} else {
|
|
100
|
-
|
|
109
|
+
t3 = $[10];
|
|
101
110
|
}
|
|
102
|
-
const setValue =
|
|
103
|
-
let
|
|
104
|
-
const
|
|
105
|
-
const
|
|
106
|
-
let
|
|
107
|
-
if ($[
|
|
108
|
-
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
+
const setValue = t3;
|
|
112
|
+
let t4;
|
|
113
|
+
const t5 = field?.customComponents;
|
|
114
|
+
const t6 = field?.errorMessage;
|
|
115
|
+
let t7;
|
|
116
|
+
if ($[11] !== field?.errorPaths) {
|
|
117
|
+
t7 = field?.errorPaths || [];
|
|
118
|
+
$[11] = field?.errorPaths;
|
|
119
|
+
$[12] = t7;
|
|
111
120
|
} else {
|
|
112
|
-
|
|
121
|
+
t7 = $[12];
|
|
113
122
|
}
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
let
|
|
117
|
-
if ($[
|
|
118
|
-
|
|
119
|
-
customComponents:
|
|
120
|
-
errorMessage:
|
|
121
|
-
errorPaths:
|
|
123
|
+
const t8 = field?.rows;
|
|
124
|
+
const t9 = field?.valid;
|
|
125
|
+
let t10;
|
|
126
|
+
if ($[13] !== filterOptions || $[14] !== initialValue || $[15] !== initializing || $[16] !== path || $[17] !== processing || $[18] !== setValue || $[19] !== showError || $[20] !== submitted || $[21] !== t5 || $[22] !== t6 || $[23] !== t7 || $[24] !== t8 || $[25] !== t9 || $[26] !== value) {
|
|
127
|
+
t10 = {
|
|
128
|
+
customComponents: t5,
|
|
129
|
+
errorMessage: t6,
|
|
130
|
+
errorPaths: t7,
|
|
122
131
|
filterOptions,
|
|
123
132
|
formInitializing: initializing,
|
|
124
133
|
formProcessing: processing,
|
|
125
134
|
formSubmitted: submitted,
|
|
126
135
|
initialValue,
|
|
127
136
|
path,
|
|
128
|
-
rows:
|
|
137
|
+
rows: t8,
|
|
129
138
|
setValue,
|
|
130
139
|
showError,
|
|
131
|
-
valid:
|
|
140
|
+
valid: t9,
|
|
132
141
|
value
|
|
133
142
|
};
|
|
134
|
-
$[
|
|
135
|
-
$[
|
|
136
|
-
$[
|
|
137
|
-
$[
|
|
138
|
-
$[
|
|
139
|
-
$[
|
|
140
|
-
$[
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[23] = t8;
|
|
147
|
-
$[24] = value;
|
|
143
|
+
$[13] = filterOptions;
|
|
144
|
+
$[14] = initialValue;
|
|
145
|
+
$[15] = initializing;
|
|
146
|
+
$[16] = path;
|
|
147
|
+
$[17] = processing;
|
|
148
|
+
$[18] = setValue;
|
|
149
|
+
$[19] = showError;
|
|
150
|
+
$[20] = submitted;
|
|
151
|
+
$[21] = t5;
|
|
152
|
+
$[22] = t6;
|
|
153
|
+
$[23] = t7;
|
|
154
|
+
$[24] = t8;
|
|
148
155
|
$[25] = t9;
|
|
156
|
+
$[26] = value;
|
|
157
|
+
$[27] = t10;
|
|
149
158
|
} else {
|
|
150
|
-
|
|
159
|
+
t10 = $[27];
|
|
151
160
|
}
|
|
152
|
-
|
|
153
|
-
const result =
|
|
154
|
-
let
|
|
155
|
-
if ($[
|
|
156
|
-
|
|
161
|
+
t4 = t10;
|
|
162
|
+
const result = t4;
|
|
163
|
+
let t11;
|
|
164
|
+
if ($[28] !== collectionSlug || $[29] !== config || $[30] !== disableFormData || $[31] !== dispatchField || $[32] !== documentForm || $[33] !== field || $[34] !== getData || $[35] !== getDataByPath || $[36] !== getSiblingData || $[37] !== hasRows || $[38] !== id || $[39] !== operation || $[40] !== path || $[41] !== pathSegments || $[42] !== t || $[43] !== user || $[44] !== validate || $[45] !== value) {
|
|
165
|
+
t11 = () => {
|
|
157
166
|
const validateField = async () => {
|
|
158
167
|
let valueToValidate = value;
|
|
159
168
|
if (field?.rows && Array.isArray(field.rows)) {
|
|
@@ -169,6 +178,7 @@ export const useField = options => {
|
|
|
169
178
|
data: documentForm?.getData ? documentForm.getData() : data,
|
|
170
179
|
event: "onChange",
|
|
171
180
|
operation,
|
|
181
|
+
path: pathSegments,
|
|
172
182
|
preferences: {},
|
|
173
183
|
req: {
|
|
174
184
|
payload: {
|
|
@@ -210,49 +220,50 @@ export const useField = options => {
|
|
|
210
220
|
};
|
|
211
221
|
validateField();
|
|
212
222
|
};
|
|
213
|
-
$[
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
$[
|
|
217
|
-
$[
|
|
218
|
-
$[
|
|
219
|
-
$[
|
|
220
|
-
$[
|
|
221
|
-
$[
|
|
222
|
-
$[
|
|
223
|
-
$[
|
|
224
|
-
$[
|
|
225
|
-
$[
|
|
226
|
-
$[
|
|
227
|
-
$[
|
|
228
|
-
$[
|
|
229
|
-
$[
|
|
230
|
-
$[
|
|
223
|
+
$[28] = collectionSlug;
|
|
224
|
+
$[29] = config;
|
|
225
|
+
$[30] = disableFormData;
|
|
226
|
+
$[31] = dispatchField;
|
|
227
|
+
$[32] = documentForm;
|
|
228
|
+
$[33] = field;
|
|
229
|
+
$[34] = getData;
|
|
230
|
+
$[35] = getDataByPath;
|
|
231
|
+
$[36] = getSiblingData;
|
|
232
|
+
$[37] = hasRows;
|
|
233
|
+
$[38] = id;
|
|
234
|
+
$[39] = operation;
|
|
235
|
+
$[40] = path;
|
|
236
|
+
$[41] = pathSegments;
|
|
237
|
+
$[42] = t;
|
|
238
|
+
$[43] = user;
|
|
239
|
+
$[44] = validate;
|
|
240
|
+
$[45] = value;
|
|
241
|
+
$[46] = t11;
|
|
231
242
|
} else {
|
|
232
|
-
|
|
243
|
+
t11 = $[46];
|
|
233
244
|
}
|
|
234
|
-
const
|
|
235
|
-
let
|
|
236
|
-
if ($[
|
|
237
|
-
|
|
238
|
-
$[
|
|
239
|
-
$[
|
|
240
|
-
$[
|
|
241
|
-
$[
|
|
242
|
-
$[
|
|
243
|
-
$[
|
|
244
|
-
$[
|
|
245
|
-
$[
|
|
246
|
-
$[
|
|
247
|
-
$[
|
|
248
|
-
$[
|
|
249
|
-
$[
|
|
250
|
-
$[
|
|
251
|
-
$[
|
|
245
|
+
const t12 = field?.rows;
|
|
246
|
+
let t13;
|
|
247
|
+
if ($[47] !== collectionSlug || $[48] !== disableFormData || $[49] !== dispatchField || $[50] !== getData || $[51] !== getDataByPath || $[52] !== getSiblingData || $[53] !== id || $[54] !== operation || $[55] !== path || $[56] !== t12 || $[57] !== user || $[58] !== validate || $[59] !== value) {
|
|
248
|
+
t13 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t12, collectionSlug];
|
|
249
|
+
$[47] = collectionSlug;
|
|
250
|
+
$[48] = disableFormData;
|
|
251
|
+
$[49] = dispatchField;
|
|
252
|
+
$[50] = getData;
|
|
253
|
+
$[51] = getDataByPath;
|
|
254
|
+
$[52] = getSiblingData;
|
|
255
|
+
$[53] = id;
|
|
256
|
+
$[54] = operation;
|
|
257
|
+
$[55] = path;
|
|
258
|
+
$[56] = t12;
|
|
259
|
+
$[57] = user;
|
|
260
|
+
$[58] = validate;
|
|
261
|
+
$[59] = value;
|
|
262
|
+
$[60] = t13;
|
|
252
263
|
} else {
|
|
253
|
-
|
|
264
|
+
t13 = $[60];
|
|
254
265
|
}
|
|
255
|
-
useThrottledEffect(
|
|
266
|
+
useThrottledEffect(t11, 150, t13);
|
|
256
267
|
return result;
|
|
257
268
|
};
|
|
258
269
|
function _temp(t0) {
|