@payloadcms/ui 3.2.1 → 3.2.2-canary.317488d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/elements/Button/types.d.ts +8 -0
  2. package/dist/elements/Button/types.d.ts.map +1 -1
  3. package/dist/elements/Button/types.js.map +1 -1
  4. package/dist/elements/DocumentDrawer/Provider.d.ts +2 -2
  5. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  6. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  7. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentFields/index.js +53 -92
  9. package/dist/elements/DocumentFields/index.js.map +1 -1
  10. package/dist/exports/client/{CodeEditor-DRTCMRCY.js → CodeEditor-5MCGR4GL.js} +2 -2
  11. package/dist/exports/client/chunk-4SO5UCQD.js +14 -0
  12. package/dist/exports/client/chunk-4SO5UCQD.js.map +8 -0
  13. package/dist/exports/client/index.js +10 -10
  14. package/dist/exports/client/index.js.map +3 -3
  15. package/dist/forms/Form/index.d.ts.map +1 -1
  16. package/dist/forms/Form/index.js +11 -1
  17. package/dist/forms/Form/index.js.map +1 -1
  18. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  19. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  20. package/dist/forms/Form/types.d.ts +1 -1
  21. package/dist/forms/Form/types.d.ts.map +1 -1
  22. package/dist/forms/Form/types.js.map +1 -1
  23. package/dist/forms/Submit/index.d.ts.map +1 -1
  24. package/dist/forms/Submit/index.js +6 -4
  25. package/dist/forms/Submit/index.js.map +1 -1
  26. package/dist/providers/Config/index.d.ts.map +1 -1
  27. package/dist/providers/Config/index.js +34 -19
  28. package/dist/providers/Config/index.js.map +1 -1
  29. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  30. package/dist/providers/ListQuery/index.js +5 -6
  31. package/dist/providers/ListQuery/index.js.map +1 -1
  32. package/dist/providers/SearchParams/index.d.ts +2 -0
  33. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  34. package/dist/providers/SearchParams/index.js +24 -28
  35. package/dist/providers/SearchParams/index.js.map +1 -1
  36. package/dist/utilities/buildFormState.d.ts +6 -5
  37. package/dist/utilities/buildFormState.d.ts.map +1 -1
  38. package/dist/utilities/buildFormState.js.map +1 -1
  39. package/dist/views/Edit/index.d.ts +1 -1
  40. package/dist/views/Edit/index.d.ts.map +1 -1
  41. package/dist/views/Edit/index.js +76 -51
  42. package/dist/views/Edit/index.js.map +1 -1
  43. package/package.json +5 -5
  44. package/dist/exports/client/chunk-PNHVQDTJ.js +0 -14
  45. package/dist/exports/client/chunk-PNHVQDTJ.js.map +0 -8
  46. /package/dist/exports/client/{CodeEditor-DRTCMRCY.js.map → CodeEditor-5MCGR4GL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,YAAY,CAAA;AA6BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAipBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,YAAY,CAAA;AA6BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA6pBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -264,7 +264,17 @@ export const Form = props => {
264
264
  }
265
265
  if (res.status < 400) {
266
266
  if (typeof onSuccess === 'function') {
267
- await onSuccess(json);
267
+ const newFormState = await onSuccess(json);
268
+ if (newFormState) {
269
+ const {
270
+ newState: mergedFormState
271
+ } = mergeServerFormState(contextRef.current.fields || {}, newFormState);
272
+ dispatchFields({
273
+ type: 'REPLACE_STATE',
274
+ optimize: false,
275
+ state: mergedFormState
276
+ });
277
+ }
268
278
  }
269
279
  setSubmitted(false);
270
280
  setProcessing(false);
@@ -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","requests","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","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","resetFormStateAbortControllerRef","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","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","AbortController","docPreferences","newState","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","optimize","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","delay","_jsx","noValidate","ref","Provider","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 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 } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\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 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 resetFormStateAbortControllerRef = 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 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 = {},\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 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(([, field]) => field.valid)\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 // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n const data = reduceFieldsToValues(serializableFields, true)\n\n if (overrides) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\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\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 await onSuccess(json)\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\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 abortAndIgnore(resetFormStateAbortControllerRef.current)\n\n const controller = new AbortController()\n resetFormStateAbortControllerRef.current = controller\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 operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\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 return () => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\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({ type: 'REPLACE_STATE', optimize: false, state: initialState })\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 })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n 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],\n [dispatchFields, onChange],\n {\n delay: 250,\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 <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 </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\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","useIgnoredEffectDebounced","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useServerFunctions","useTranslation","abortAndIgnore","requests","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","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","resetFormStateAbortControllerRef","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","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","AbortController","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","delay","_jsx","noValidate","ref","Provider","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 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 } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\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 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 resetFormStateAbortControllerRef = 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 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 = {},\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 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(([, field]) => field.valid)\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 // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n const data = reduceFieldsToValues(serializableFields, true)\n\n if (overrides) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\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\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 contextRef.current.fields || {},\n 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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\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 abortAndIgnore(resetFormStateAbortControllerRef.current)\n\n const controller = new AbortController()\n resetFormStateAbortControllerRef.current = controller\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 operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\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 return () => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\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({ type: 'REPLACE_STATE', optimize: false, state: initialState })\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 })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n 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],\n [dispatchFields, onChange],\n {\n delay: 250,\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 <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 </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\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":"mergeServerFormState.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/mergeServerFormState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAaxC;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,kBAChB,SAAS,iBACT,SAAS,KACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAuEzC,CAAA"}
1
+ {"version":3,"file":"mergeServerFormState.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/mergeServerFormState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAaxC;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,kBAChB,SAAS,iBACT,SAAS,KACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAsEzC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeServerFormState.js","names":["dequal","mergeErrorPaths","serverPropsToAccept","mergeServerFormState","existingState","incomingState","changed","newState","Object","entries","forEach","path","newFieldState","errorPathsResult","errorPaths","result","filterOptions","prop"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { type FormState } from 'payload'\n\nimport { mergeErrorPaths } from './mergeErrorPaths.js'\n\nconst serverPropsToAccept = [\n 'passesCondition',\n 'valid',\n 'errorMessage',\n 'rows',\n 'customComponents',\n 'requiresRender',\n]\n\n/**\n * Merges certain properties from the server state into the client state. These do not include values,\n * as we do not want to update them on the client like that, which would cause flickering.\n *\n * We want to use this to update the error state, and other properties that are not user input, as the error state\n * is the thing we want to keep in sync with the server (where it's calculated) on the client.\n */\nexport const mergeServerFormState = (\n existingState: FormState,\n incomingState: FormState,\n): { changed: boolean; newState: FormState } => {\n let changed = false\n\n const newState = {}\n\n if (existingState) {\n Object.entries(existingState).forEach(([path, newFieldState]) => {\n if (!incomingState[path]) {\n return\n }\n\n /**\n * Handle error paths\n */\n\n const errorPathsResult = mergeErrorPaths(\n newFieldState.errorPaths,\n incomingState[path].errorPaths as unknown as string[],\n )\n if (errorPathsResult.result) {\n if (errorPathsResult.changed) {\n changed = errorPathsResult.changed\n }\n newFieldState.errorPaths = errorPathsResult.result\n }\n\n /**\n * Handle filterOptions\n */\n if (incomingState[path]?.filterOptions || newFieldState.filterOptions) {\n if (!dequal(incomingState[path]?.filterOptions, newFieldState.filterOptions)) {\n changed = true\n newFieldState.filterOptions = incomingState[path].filterOptions\n }\n }\n\n /**\n * Handle adding all the remaining props that should be updated in the local form state from the server form state\n */\n serverPropsToAccept.forEach((prop) => {\n if (!dequal(incomingState[path]?.[prop], newFieldState[prop])) {\n changed = true\n if (!(prop in incomingState[path])) {\n // Regarding excluding the customComponents prop from being deleted: the incoming state might not have been rendered, as rendering components for every form onchange is expensive.\n // Thus, we simply re-use the initial render state\n if (prop !== 'customComponents') {\n delete newFieldState[prop]\n }\n } else {\n newFieldState[prop] = incomingState[path][prop]\n }\n }\n })\n\n // Conditions don't work if we don't memcopy the new state, as the object references would otherwise be the same\n newState[path] = { ...newFieldState }\n })\n\n // Now loop over values that are part of incoming state but not part of existing state, and add them to the new state.\n // This can happen if a new array row was added. In our local state, we simply add out stubbed `array` and `array.[index].id` entries to the local form state.\n // However, all other array sub-fields are not added to the local state - those will be added by the server and may be incoming here.\n\n for (const [path, newFieldState] of Object.entries(incomingState)) {\n if (!existingState[path]) {\n changed = true\n newState[path] = newFieldState\n }\n }\n }\n\n return { changed, newState }\n}\n"],"mappings":"AAAA;;AACA,SAASA,MAAM,QAAQ,cAAa,CAAC;AAGrC,SAASC,eAAe,QAAQ;AAEhC,MAAMC,mBAAA,GAAsB,CAC1B,mBACA,SACA,gBACA,QACA,oBACA,iBACD;AAED;;;;;;;AAOA,OAAO,MAAMC,oBAAA,GAAuBA,CAClCC,aAAA,EACAC,aAAA;EAEA,IAAIC,OAAA,GAAU;EAEd,MAAMC,QAAA,GAAW,CAAC;EAElB,IAAIH,aAAA,EAAe;IACjBI,MAAA,CAAOC,OAAO,CAACL,aAAA,EAAeM,OAAO,CAAC,CAAC,CAACC,IAAA,EAAMC,aAAA,CAAc;MAC1D,IAAI,CAACP,aAAa,CAACM,IAAA,CAAK,EAAE;QACxB;MACF;MAEA;;;MAIA,MAAME,gBAAA,GAAmBZ,eAAA,CACvBW,aAAA,CAAcE,UAAU,EACxBT,aAAa,CAACM,IAAA,CAAK,CAACG,UAAU;MAEhC,IAAID,gBAAA,CAAiBE,MAAM,EAAE;QAC3B,IAAIF,gBAAA,CAAiBP,OAAO,EAAE;UAC5BA,OAAA,GAAUO,gBAAA,CAAiBP,OAAO;QACpC;QACAM,aAAA,CAAcE,UAAU,GAAGD,gBAAA,CAAiBE,MAAM;MACpD;MAEA;;;MAGA,IAAIV,aAAa,CAACM,IAAA,CAAK,EAAEK,aAAA,IAAiBJ,aAAA,CAAcI,aAAa,EAAE;QACrE,IAAI,CAAChB,MAAA,CAAOK,aAAa,CAACM,IAAA,CAAK,EAAEK,aAAA,EAAeJ,aAAA,CAAcI,aAAa,GAAG;UAC5EV,OAAA,GAAU;UACVM,aAAA,CAAcI,aAAa,GAAGX,aAAa,CAACM,IAAA,CAAK,CAACK,aAAa;QACjE;MACF;MAEA;;;MAGAd,mBAAA,CAAoBQ,OAAO,CAAEO,IAAA;QAC3B,IAAI,CAACjB,MAAA,CAAOK,aAAa,CAACM,IAAA,CAAK,GAAGM,IAAA,CAAK,EAAEL,aAAa,CAACK,IAAA,CAAK,GAAG;UAC7DX,OAAA,GAAU;UACV,IAAI,EAAEW,IAAA,IAAQZ,aAAa,CAACM,IAAA,CAAK,CAAD,EAAI;YAClC;YACA;YACA,IAAIM,IAAA,KAAS,oBAAoB;cAC/B,OAAOL,aAAa,CAACK,IAAA,CAAK;YAC5B;UACF,OAAO;YACLL,aAAa,CAACK,IAAA,CAAK,GAAGZ,aAAa,CAACM,IAAA,CAAK,CAACM,IAAA,CAAK;UACjD;QACF;MACF;MAEA;MACAV,QAAQ,CAACI,IAAA,CAAK,GAAG;QAAE,GAAGC;MAAc;IACtC;IAEA;IACA;IACA;IAEA,KAAK,MAAM,CAACD,IAAA,EAAMC,aAAA,CAAc,IAAIJ,MAAA,CAAOC,OAAO,CAACJ,aAAA,GAAgB;MACjE,IAAI,CAACD,aAAa,CAACO,IAAA,CAAK,EAAE;QACxBL,OAAA,GAAU;QACVC,QAAQ,CAACI,IAAA,CAAK,GAAGC,aAAA;MACnB;IACF;EACF;EAEA,OAAO;IAAEN,OAAA;IAASC;EAAS;AAC7B","ignoreList":[]}
1
+ {"version":3,"file":"mergeServerFormState.js","names":["dequal","mergeErrorPaths","serverPropsToAccept","mergeServerFormState","existingState","incomingState","changed","newState","Object","entries","forEach","path","newFieldState","errorPathsResult","errorPaths","result","filterOptions","prop"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { type FormState } from 'payload'\n\nimport { mergeErrorPaths } from './mergeErrorPaths.js'\n\nconst serverPropsToAccept = [\n 'passesCondition',\n 'valid',\n 'errorMessage',\n 'rows',\n 'customComponents',\n 'requiresRender',\n]\n\n/**\n * Merges certain properties from the server state into the client state. These do not include values,\n * as we do not want to update them on the client like that, which would cause flickering.\n *\n * We want to use this to update the error state, and other properties that are not user input, as the error state\n * is the thing we want to keep in sync with the server (where it's calculated) on the client.\n */\nexport const mergeServerFormState = (\n existingState: FormState,\n incomingState: FormState,\n): { changed: boolean; newState: FormState } => {\n let changed = false\n\n const newState = {}\n\n if (existingState) {\n Object.entries(existingState).forEach(([path, newFieldState]) => {\n if (!incomingState[path]) {\n return\n }\n\n /**\n * Handle error paths\n */\n const errorPathsResult = mergeErrorPaths(\n newFieldState.errorPaths,\n incomingState[path].errorPaths as unknown as string[],\n )\n if (errorPathsResult.result) {\n if (errorPathsResult.changed) {\n changed = errorPathsResult.changed\n }\n newFieldState.errorPaths = errorPathsResult.result\n }\n\n /**\n * Handle filterOptions\n */\n if (incomingState[path]?.filterOptions || newFieldState.filterOptions) {\n if (!dequal(incomingState[path]?.filterOptions, newFieldState.filterOptions)) {\n changed = true\n newFieldState.filterOptions = incomingState[path].filterOptions\n }\n }\n\n /**\n * Handle adding all the remaining props that should be updated in the local form state from the server form state\n */\n serverPropsToAccept.forEach((prop) => {\n if (!dequal(incomingState[path]?.[prop], newFieldState[prop])) {\n changed = true\n if (!(prop in incomingState[path])) {\n // Regarding excluding the customComponents prop from being deleted: the incoming state might not have been rendered, as rendering components for every form onchange is expensive.\n // Thus, we simply re-use the initial render state\n if (prop !== 'customComponents') {\n delete newFieldState[prop]\n }\n } else {\n newFieldState[prop] = incomingState[path][prop]\n }\n }\n })\n\n // Conditions don't work if we don't memcopy the new state, as the object references would otherwise be the same\n newState[path] = { ...newFieldState }\n })\n\n // Now loop over values that are part of incoming state but not part of existing state, and add them to the new state.\n // This can happen if a new array row was added. In our local state, we simply add out stubbed `array` and `array.[index].id` entries to the local form state.\n // However, all other array sub-fields are not added to the local state - those will be added by the server and may be incoming here.\n\n for (const [path, newFieldState] of Object.entries(incomingState)) {\n if (!existingState[path]) {\n changed = true\n newState[path] = newFieldState\n }\n }\n }\n\n return { changed, newState }\n}\n"],"mappings":"AAAA;;AACA,SAASA,MAAM,QAAQ,cAAa,CAAC;AAGrC,SAASC,eAAe,QAAQ;AAEhC,MAAMC,mBAAA,GAAsB,CAC1B,mBACA,SACA,gBACA,QACA,oBACA,iBACD;AAED;;;;;;;AAOA,OAAO,MAAMC,oBAAA,GAAuBA,CAClCC,aAAA,EACAC,aAAA;EAEA,IAAIC,OAAA,GAAU;EAEd,MAAMC,QAAA,GAAW,CAAC;EAElB,IAAIH,aAAA,EAAe;IACjBI,MAAA,CAAOC,OAAO,CAACL,aAAA,EAAeM,OAAO,CAAC,CAAC,CAACC,IAAA,EAAMC,aAAA,CAAc;MAC1D,IAAI,CAACP,aAAa,CAACM,IAAA,CAAK,EAAE;QACxB;MACF;MAEA;;;MAGA,MAAME,gBAAA,GAAmBZ,eAAA,CACvBW,aAAA,CAAcE,UAAU,EACxBT,aAAa,CAACM,IAAA,CAAK,CAACG,UAAU;MAEhC,IAAID,gBAAA,CAAiBE,MAAM,EAAE;QAC3B,IAAIF,gBAAA,CAAiBP,OAAO,EAAE;UAC5BA,OAAA,GAAUO,gBAAA,CAAiBP,OAAO;QACpC;QACAM,aAAA,CAAcE,UAAU,GAAGD,gBAAA,CAAiBE,MAAM;MACpD;MAEA;;;MAGA,IAAIV,aAAa,CAACM,IAAA,CAAK,EAAEK,aAAA,IAAiBJ,aAAA,CAAcI,aAAa,EAAE;QACrE,IAAI,CAAChB,MAAA,CAAOK,aAAa,CAACM,IAAA,CAAK,EAAEK,aAAA,EAAeJ,aAAA,CAAcI,aAAa,GAAG;UAC5EV,OAAA,GAAU;UACVM,aAAA,CAAcI,aAAa,GAAGX,aAAa,CAACM,IAAA,CAAK,CAACK,aAAa;QACjE;MACF;MAEA;;;MAGAd,mBAAA,CAAoBQ,OAAO,CAAEO,IAAA;QAC3B,IAAI,CAACjB,MAAA,CAAOK,aAAa,CAACM,IAAA,CAAK,GAAGM,IAAA,CAAK,EAAEL,aAAa,CAACK,IAAA,CAAK,GAAG;UAC7DX,OAAA,GAAU;UACV,IAAI,EAAEW,IAAA,IAAQZ,aAAa,CAACM,IAAA,CAAK,CAAD,EAAI;YAClC;YACA;YACA,IAAIM,IAAA,KAAS,oBAAoB;cAC/B,OAAOL,aAAa,CAACK,IAAA,CAAK;YAC5B;UACF,OAAO;YACLL,aAAa,CAACK,IAAA,CAAK,GAAGZ,aAAa,CAACM,IAAA,CAAK,CAACM,IAAA,CAAK;UACjD;QACF;MACF;MAEA;MACAV,QAAQ,CAACI,IAAA,CAAK,GAAG;QAAE,GAAGC;MAAc;IACtC;IAEA;IACA;IACA;IAEA,KAAK,MAAM,CAACD,IAAA,EAAMC,aAAA,CAAc,IAAIJ,MAAA,CAAOC,OAAO,CAACJ,aAAA,GAAgB;MACjE,IAAI,CAACD,aAAa,CAACO,IAAA,CAAK,EAAE;QACxBL,OAAA,GAAU;QACVC,QAAQ,CAACI,IAAA,CAAK,GAAGC,aAAA;MACnB;IACF;EACF;EAEA,OAAO;IAAEN,OAAA;IAASC;EAAS;AAC7B","ignoreList":[]}
@@ -31,7 +31,7 @@ export type FormProps = {
31
31
  formState: FormState;
32
32
  }) => Promise<FormState>)[];
33
33
  onSubmit?: (fields: FormState, data: Data) => void;
34
- onSuccess?: (json: unknown) => Promise<void> | void;
34
+ onSuccess?: (json: unknown) => Promise<FormState | void> | void;
35
35
  redirect?: string;
36
36
  submitted?: boolean;
37
37
  uuid?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EACH,IAAI,EACJ,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,CACf,GAAG,EAAE,QAAQ,EACb,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACrC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAChC,IAAI,CAAA;IACT,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IACrE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAClD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,GAAG,CACA;IACE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CAC7C,CACJ,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAChD,MAAM,MAAM,MAAM,GAAG,CACnB,OAAO,CAAC,EAAE,aAAa,EACvB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAA;AAClB,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AACjD,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAA;AAC1D,MAAM,MAAM,SAAS,GAAG,MAAM,SAAS,CAAA;AACvC,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAA;AAClD,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAA;AAChC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAA;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;AAEzD,MAAM,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;CACf,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEtB,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,IAAI,EAAE,mBAAmB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,mBAAmB,CAAA;IACzB,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,wBAAwB,CAAA;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,WAAW,GACX,aAAa,GACb,sBAAsB,GACtB,iBAAiB,GACjB,MAAM,GACN,WAAW,CAAA;AAEf,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;AAElE,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,CAAC,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,GACd,EAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,CAAC,EAAE,SAAS,CAAA;KAC1B,KAAK,IAAI,CAAA;IACV,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACrC;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChF,eAAe,EAAE,CAAC,EAChB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,GACd,EAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,CAAC,EAAE,SAAS,CAAA;KAC1B,KAAK,IAAI,CAAA;IACV,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/Form/types.ts"],"sourcesContent":["import type {\n ClientField,\n Data,\n FormField,\n FormState,\n Row,\n User,\n ValidationFieldError,\n} from 'payload'\nimport type React from 'react'\nimport type { Dispatch } from 'react'\n\nexport type Preferences = {\n [key: string]: unknown\n}\n\nexport type FormProps = {\n beforeSubmit?: ((args: { formState: FormState }) => Promise<FormState>)[]\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n disableSuccessStatus?: boolean\n /**\n * If you would like to solely leverage server-side validation on submit,\n * you can disable checks that the form makes before it submits\n */\n disableValidationOnSubmit?: boolean\n /**\n * By default, the form will get the field schema (not data) from the current document. If you pass this in, you can override that behavior.\n * This is very useful for sub-forms, where the form's field schema is not necessarily the field schema of the current document (e.g. for the Blocks\n * feature of the Lexical Rich Text field)\n */\n fields?: ClientField[]\n handleResponse?: (\n res: Response,\n successToast: (value: string) => void,\n errorToast: (value: string) => void,\n ) => void\n initialState?: FormState\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState }) => Promise<FormState>)[]\n onSubmit?: (fields: FormState, data: Data) => void\n onSuccess?: (json: unknown) => Promise<void> | void\n redirect?: string\n submitted?: boolean\n uuid?: string\n validationOperation?: 'create' | 'update'\n waitForAutocomplete?: boolean\n} & (\n | {\n action: (formData: FormData) => Promise<void>\n }\n | {\n action?: string\n method?: 'DELETE' | 'GET' | 'PATCH' | 'POST'\n }\n)\n\nexport type SubmitOptions = {\n action?: string\n method?: string\n overrides?: Record<string, unknown>\n skipValidation?: boolean\n}\n\nexport type DispatchFields = React.Dispatch<any>\nexport type Submit = (\n options?: SubmitOptions,\n e?: React.FormEvent<HTMLFormElement>,\n) => Promise<void>\nexport type ValidateForm = () => Promise<boolean>\nexport type CreateFormData = (overrides?: any) => FormData\nexport type GetFields = () => FormState\nexport type GetField = (path: string) => FormField\nexport type GetData = () => Data\nexport type GetSiblingData = (path: string) => Data\nexport type GetDataByPath = <T = unknown>(path: string) => T\nexport type SetModified = (modified: boolean) => void\nexport type SetSubmitted = (submitted: boolean) => void\nexport type SetProcessing = (processing: boolean) => void\n\nexport type Reset = (data: unknown) => Promise<void>\n\nexport type REPLACE_STATE = {\n optimize?: boolean\n state: FormState\n type: 'REPLACE_STATE'\n}\n\nexport type REMOVE = {\n path: string\n type: 'REMOVE'\n}\n\nexport type MODIFY_CONDITION = {\n path: string\n result: boolean\n type: 'MODIFY_CONDITION'\n user: User\n}\n\nexport type UPDATE = {\n path: string\n type: 'UPDATE'\n} & Partial<FormField>\n\nexport type UPDATE_MANY = {\n formState: FormState\n type: 'UPDATE_MANY'\n}\n\nexport type REMOVE_ROW = {\n path: string\n rowIndex: number\n type: 'REMOVE_ROW'\n}\n\nexport type ADD_ROW = {\n blockType?: string\n path: string\n rowIndex?: number\n subFieldState?: FormState\n type: 'ADD_ROW'\n}\n\nexport type REPLACE_ROW = {\n blockType?: string\n path: string\n rowIndex: number\n subFieldState?: FormState\n type: 'REPLACE_ROW'\n}\n\nexport type DUPLICATE_ROW = {\n path: string\n rowIndex: number\n type: 'DUPLICATE_ROW'\n}\n\nexport type MOVE_ROW = {\n moveFromIndex: number\n moveToIndex: number\n path: string\n type: 'MOVE_ROW'\n}\n\nexport type ADD_SERVER_ERRORS = {\n errors: ValidationFieldError[]\n type: 'ADD_SERVER_ERRORS'\n}\n\nexport type SET_ROW_COLLAPSED = {\n path: string\n type: 'SET_ROW_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type SET_ALL_ROWS_COLLAPSED = {\n path: string\n type: 'SET_ALL_ROWS_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type FieldAction =\n | ADD_ROW\n | ADD_SERVER_ERRORS\n | DUPLICATE_ROW\n | MODIFY_CONDITION\n | MOVE_ROW\n | REMOVE\n | REMOVE_ROW\n | REPLACE_ROW\n | REPLACE_STATE\n | SET_ALL_ROWS_COLLAPSED\n | SET_ROW_COLLAPSED\n | UPDATE\n | UPDATE_MANY\n\nexport type FormFieldsContext = [FormState, Dispatch<FieldAction>]\n\nexport type Context = {\n addFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex?: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n buildRowErrors: () => void\n createFormData: CreateFormData\n disabled: boolean\n dispatchFields: Dispatch<FieldAction>\n /**\n * Form context fields may be outdated and should not be relied on. Instead, prefer `useFormFields`.\n */\n fields: FormState\n formRef: React.RefObject<HTMLFormElement>\n getData: GetData\n getDataByPath: GetDataByPath\n getField: GetField\n getFields: GetFields\n getSiblingData: GetSiblingData\n initializing: boolean\n removeFieldRow: ({ path, rowIndex }: { path: string; rowIndex: number }) => void\n replaceFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n replaceState: (state: FormState) => void\n reset: Reset\n setDisabled: (disabled: boolean) => void\n setModified: SetModified\n setProcessing: SetProcessing\n setSubmitted: SetSubmitted\n submit: Submit\n uuid?: string\n validateForm: ValidateForm\n}\n"],"mappings":"AAqLA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/Form/types.ts"],"sourcesContent":["import type {\n ClientField,\n Data,\n FormField,\n FormState,\n Row,\n User,\n ValidationFieldError,\n} from 'payload'\nimport type React from 'react'\nimport type { Dispatch } from 'react'\n\nexport type Preferences = {\n [key: string]: unknown\n}\n\nexport type FormProps = {\n beforeSubmit?: ((args: { formState: FormState }) => Promise<FormState>)[]\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n disableSuccessStatus?: boolean\n /**\n * If you would like to solely leverage server-side validation on submit,\n * you can disable checks that the form makes before it submits\n */\n disableValidationOnSubmit?: boolean\n /**\n * By default, the form will get the field schema (not data) from the current document. If you pass this in, you can override that behavior.\n * This is very useful for sub-forms, where the form's field schema is not necessarily the field schema of the current document (e.g. for the Blocks\n * feature of the Lexical Rich Text field)\n */\n fields?: ClientField[]\n handleResponse?: (\n res: Response,\n successToast: (value: string) => void,\n errorToast: (value: string) => void,\n ) => void\n initialState?: FormState\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState }) => Promise<FormState>)[]\n onSubmit?: (fields: FormState, data: Data) => void\n onSuccess?: (json: unknown) => Promise<FormState | void> | void\n redirect?: string\n submitted?: boolean\n uuid?: string\n validationOperation?: 'create' | 'update'\n waitForAutocomplete?: boolean\n} & (\n | {\n action: (formData: FormData) => Promise<void>\n }\n | {\n action?: string\n method?: 'DELETE' | 'GET' | 'PATCH' | 'POST'\n }\n)\n\nexport type SubmitOptions = {\n action?: string\n method?: string\n overrides?: Record<string, unknown>\n skipValidation?: boolean\n}\n\nexport type DispatchFields = React.Dispatch<any>\nexport type Submit = (\n options?: SubmitOptions,\n e?: React.FormEvent<HTMLFormElement>,\n) => Promise<void>\nexport type ValidateForm = () => Promise<boolean>\nexport type CreateFormData = (overrides?: any) => FormData\nexport type GetFields = () => FormState\nexport type GetField = (path: string) => FormField\nexport type GetData = () => Data\nexport type GetSiblingData = (path: string) => Data\nexport type GetDataByPath = <T = unknown>(path: string) => T\nexport type SetModified = (modified: boolean) => void\nexport type SetSubmitted = (submitted: boolean) => void\nexport type SetProcessing = (processing: boolean) => void\n\nexport type Reset = (data: unknown) => Promise<void>\n\nexport type REPLACE_STATE = {\n optimize?: boolean\n state: FormState\n type: 'REPLACE_STATE'\n}\n\nexport type REMOVE = {\n path: string\n type: 'REMOVE'\n}\n\nexport type MODIFY_CONDITION = {\n path: string\n result: boolean\n type: 'MODIFY_CONDITION'\n user: User\n}\n\nexport type UPDATE = {\n path: string\n type: 'UPDATE'\n} & Partial<FormField>\n\nexport type UPDATE_MANY = {\n formState: FormState\n type: 'UPDATE_MANY'\n}\n\nexport type REMOVE_ROW = {\n path: string\n rowIndex: number\n type: 'REMOVE_ROW'\n}\n\nexport type ADD_ROW = {\n blockType?: string\n path: string\n rowIndex?: number\n subFieldState?: FormState\n type: 'ADD_ROW'\n}\n\nexport type REPLACE_ROW = {\n blockType?: string\n path: string\n rowIndex: number\n subFieldState?: FormState\n type: 'REPLACE_ROW'\n}\n\nexport type DUPLICATE_ROW = {\n path: string\n rowIndex: number\n type: 'DUPLICATE_ROW'\n}\n\nexport type MOVE_ROW = {\n moveFromIndex: number\n moveToIndex: number\n path: string\n type: 'MOVE_ROW'\n}\n\nexport type ADD_SERVER_ERRORS = {\n errors: ValidationFieldError[]\n type: 'ADD_SERVER_ERRORS'\n}\n\nexport type SET_ROW_COLLAPSED = {\n path: string\n type: 'SET_ROW_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type SET_ALL_ROWS_COLLAPSED = {\n path: string\n type: 'SET_ALL_ROWS_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type FieldAction =\n | ADD_ROW\n | ADD_SERVER_ERRORS\n | DUPLICATE_ROW\n | MODIFY_CONDITION\n | MOVE_ROW\n | REMOVE\n | REMOVE_ROW\n | REPLACE_ROW\n | REPLACE_STATE\n | SET_ALL_ROWS_COLLAPSED\n | SET_ROW_COLLAPSED\n | UPDATE\n | UPDATE_MANY\n\nexport type FormFieldsContext = [FormState, Dispatch<FieldAction>]\n\nexport type Context = {\n addFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex?: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n buildRowErrors: () => void\n createFormData: CreateFormData\n disabled: boolean\n dispatchFields: Dispatch<FieldAction>\n /**\n * Form context fields may be outdated and should not be relied on. Instead, prefer `useFormFields`.\n */\n fields: FormState\n formRef: React.RefObject<HTMLFormElement>\n getData: GetData\n getDataByPath: GetDataByPath\n getField: GetField\n getFields: GetFields\n getSiblingData: GetSiblingData\n initializing: boolean\n removeFieldRow: ({ path, rowIndex }: { path: string; rowIndex: number }) => void\n replaceFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n replaceState: (state: FormState) => void\n reset: Reset\n setDisabled: (disabled: boolean) => void\n setModified: SetModified\n setProcessing: SetProcessing\n setSubmitted: SetSubmitted\n submit: Submit\n uuid?: string\n validateForm: ValidateForm\n}\n"],"mappings":"AAqLA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,iFA2BrB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,iFAqCrB,CAAA"}
@@ -12,7 +12,8 @@ export const FormSubmit = /*#__PURE__*/forwardRef((props, ref) => {
12
12
  buttonId: id,
13
13
  children,
14
14
  disabled: disabledFromProps,
15
- onClick
15
+ onClick,
16
+ programmaticSubmit
16
17
  } = props;
17
18
  const processing = useFormProcessing();
18
19
  const initializing = useFormInitializing();
@@ -21,6 +22,9 @@ export const FormSubmit = /*#__PURE__*/forwardRef((props, ref) => {
21
22
  submit
22
23
  } = useForm();
23
24
  const canSave = !(disabledFromProps || initializing || processing || disabled);
25
+ const handleClick = onClick ?? (programmaticSubmit ? () => {
26
+ void submit();
27
+ } : undefined);
24
28
  return /*#__PURE__*/_jsx("div", {
25
29
  className: baseClass,
26
30
  children: /*#__PURE__*/_jsx(Button, {
@@ -28,9 +32,7 @@ export const FormSubmit = /*#__PURE__*/forwardRef((props, ref) => {
28
32
  ...props,
29
33
  disabled: canSave ? undefined : true,
30
34
  id: id,
31
- onClick: onClick ?? (() => {
32
- void submit();
33
- }),
35
+ onClick: handleClick,
34
36
  type: type,
35
37
  children: children
36
38
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","forwardRef","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","onClick","processing","initializing","submit","canSave","_jsx","className","undefined"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps, onClick } = props\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { disabled, submit } = useForm()\n\n const canSave = !(disabledFromProps || initializing || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button\n ref={ref}\n {...props}\n disabled={canSave ? undefined : true}\n id={id}\n onClick={\n onClick ??\n (() => {\n void submit()\n })\n }\n type={type}\n >\n {children}\n </Button>\n </div>\n )\n})\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,UAAU,QAAQ;AAIlC,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,gBAAaN,UAAA,CAAqC,CAACO,KAAA,EAAOC,GAAA;EACrE,MAAM;IAAEC,IAAA,GAAO,QAAQ;IAAEC,QAAA,EAAUC,EAAE;IAAEC,QAAQ;IAAEC,QAAA,EAAUC,iBAAiB;IAAEC;EAAO,CAAE,GAAGR,KAAA;EAC1F,MAAMS,UAAA,GAAaZ,iBAAA;EACnB,MAAMa,YAAA,GAAed,mBAAA;EACrB,MAAM;IAAEU,QAAQ;IAAEK;EAAM,CAAE,GAAGhB,OAAA;EAE7B,MAAMiB,OAAA,GAAU,EAAEL,iBAAA,IAAqBG,YAAA,IAAgBD,UAAA,IAAcH,QAAO;EAE5E,oBACEO,IAAA,CAAC;IAAIC,SAAA,EAAWhB,SAAA;cACd,aAAAe,IAAA,CAACnB,MAAA;MACCO,GAAA,EAAKA,GAAA;MACJ,GAAGD,KAAK;MACTM,QAAA,EAAUM,OAAA,GAAUG,SAAA,GAAY;MAChCX,EAAA,EAAIA,EAAA;MACJI,OAAA,EACEA,OAAA,KACC;QACC,KAAKG,MAAA;MACP;MAEFT,IAAA,EAAMA,IAAA;gBAELG;;;AAIT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","forwardRef","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","onClick","programmaticSubmit","processing","initializing","submit","canSave","handleClick","undefined","_jsx","className"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const {\n type = 'submit',\n buttonId: id,\n children,\n disabled: disabledFromProps,\n onClick,\n programmaticSubmit,\n } = props\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { disabled, submit } = useForm()\n\n const canSave = !(disabledFromProps || initializing || processing || disabled)\n\n const handleClick =\n onClick ??\n (programmaticSubmit\n ? () => {\n void submit()\n }\n : undefined)\n\n return (\n <div className={baseClass}>\n <Button\n ref={ref}\n {...props}\n disabled={canSave ? undefined : true}\n id={id}\n onClick={handleClick}\n type={type}\n >\n {children}\n </Button>\n </div>\n )\n})\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,UAAU,QAAQ;AAIlC,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,gBAAaN,UAAA,CAAqC,CAACO,KAAA,EAAOC,GAAA;EACrE,MAAM;IACJC,IAAA,GAAO,QAAQ;IACfC,QAAA,EAAUC,EAAE;IACZC,QAAQ;IACRC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAO;IACPC;EAAkB,CACnB,GAAGT,KAAA;EACJ,MAAMU,UAAA,GAAab,iBAAA;EACnB,MAAMc,YAAA,GAAef,mBAAA;EACrB,MAAM;IAAEU,QAAQ;IAAEM;EAAM,CAAE,GAAGjB,OAAA;EAE7B,MAAMkB,OAAA,GAAU,EAAEN,iBAAA,IAAqBI,YAAA,IAAgBD,UAAA,IAAcJ,QAAO;EAE5E,MAAMQ,WAAA,GACJN,OAAA,KACCC,kBAAA,GACG;IACE,KAAKG,MAAA;EACP,IACAG,SAAQ;EAEd,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWnB,SAAA;cACd,aAAAkB,IAAA,CAACtB,MAAA;MACCO,GAAA,EAAKA,GAAA;MACJ,GAAGD,KAAK;MACTM,QAAA,EAAUO,OAAA,GAAUE,SAAA,GAAY;MAChCX,EAAA,EAAIA,EAAA;MACJI,OAAA,EAASM,WAAA;MACTZ,IAAA,EAAMA,IAAA;gBAELG;;;AAIT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvF,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,KAAK,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;QAChD,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KACzC,KAAK,IAAI,CAAA;CACX,CAAA;AAID,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B,CAuBA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAAoD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvF,OAAO,KAAsE,MAAM,OAAO,CAAA;AAE1F,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,KAAK,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;QAChD,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KACzC,KAAK,IAAI,CAAA;CACX,CAAA;AAID,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B,CA6BA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAAoD,CAAA"}
@@ -2,22 +2,37 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { createContext, useCallback, useContext, useState } from 'react';
5
+ import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
6
6
  const RootConfigContext = /*#__PURE__*/createContext(undefined);
7
7
  export const ConfigProvider = t0 => {
8
- const $ = _c(7);
8
+ const $ = _c(10);
9
9
  const {
10
10
  children,
11
11
  config: configFromProps
12
12
  } = t0;
13
13
  const [config, setConfig] = useState(configFromProps);
14
14
  let t1;
15
- if ($[0] !== config.collections || $[1] !== config.globals) {
16
- t1 = t2 => {
15
+ let t2;
16
+ if ($[0] !== configFromProps) {
17
+ t1 = () => {
18
+ setConfig(configFromProps);
19
+ };
20
+ t2 = [configFromProps];
21
+ $[0] = configFromProps;
22
+ $[1] = t1;
23
+ $[2] = t2;
24
+ } else {
25
+ t1 = $[1];
26
+ t2 = $[2];
27
+ }
28
+ useEffect(t1, t2);
29
+ let t3;
30
+ if ($[3] !== config.collections || $[4] !== config.globals) {
31
+ t3 = t4 => {
17
32
  const {
18
33
  collectionSlug,
19
34
  globalSlug
20
- } = t2;
35
+ } = t4;
21
36
  if (collectionSlug) {
22
37
  return config.collections.find(collection => collection.slug === collectionSlug);
23
38
  }
@@ -26,16 +41,16 @@ export const ConfigProvider = t0 => {
26
41
  }
27
42
  return null;
28
43
  };
29
- $[0] = config.collections;
30
- $[1] = config.globals;
31
- $[2] = t1;
44
+ $[3] = config.collections;
45
+ $[4] = config.globals;
46
+ $[5] = t3;
32
47
  } else {
33
- t1 = $[2];
48
+ t3 = $[5];
34
49
  }
35
- const getEntityConfig = t1;
36
- let t2;
37
- if ($[3] !== config || $[4] !== getEntityConfig || $[5] !== children) {
38
- t2 = _jsx(RootConfigContext.Provider, {
50
+ const getEntityConfig = t3;
51
+ let t4;
52
+ if ($[6] !== config || $[7] !== getEntityConfig || $[8] !== children) {
53
+ t4 = _jsx(RootConfigContext.Provider, {
39
54
  value: {
40
55
  config,
41
56
  getEntityConfig,
@@ -43,14 +58,14 @@ export const ConfigProvider = t0 => {
43
58
  },
44
59
  children
45
60
  });
46
- $[3] = config;
47
- $[4] = getEntityConfig;
48
- $[5] = children;
49
- $[6] = t2;
61
+ $[6] = config;
62
+ $[7] = getEntityConfig;
63
+ $[8] = children;
64
+ $[9] = t4;
50
65
  } else {
51
- t2 = $[6];
66
+ t4 = $[9];
52
67
  }
53
- return t2;
68
+ return t4;
54
69
  };
55
70
  export const useConfig = () => {
56
71
  return useContext(RootConfigContext);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","RootConfigContext","undefined","ConfigProvider","t0","$","children","config","configFromProps","setConfig","t1","collections","globals","t2","collectionSlug","globalSlug","find","collection","slug","global","getEntityConfig","_jsx","Provider","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nexport type ClientConfigContext = {\n config: ClientConfig\n getEntityConfig: (args: {\n collectionSlug?: string\n globalSlug?: string\n }) => ClientCollectionConfig | ClientGlobalConfig | null\n setConfig: (config: ClientConfig) => void\n}\n\nexport type EntityConfigContext = {\n collectionConfig?: ClientCollectionConfig\n globalConfig?: ClientGlobalConfig\n setEntityConfig: (args: {\n collectionConfig?: ClientCollectionConfig | null\n globalConfig?: ClientGlobalConfig | null\n }) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(configFromProps)\n\n const getEntityConfig = useCallback(\n ({ collectionSlug, globalSlug }: { collectionSlug?: string; globalSlug?: string }) => {\n if (collectionSlug) {\n return config.collections.find((collection) => collection.slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find((global) => global.slug === globalSlug)\n }\n\n return null\n },\n [config],\n )\n\n return (\n <RootConfigContext.Provider value={{ config, getEntityConfig, setConfig }}>\n {children}\n </RootConfigContext.Provider>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => useContext(RootConfigContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,QAAQ,QAAQ;AAoBxE,MAAMC,iBAAA,gBAAoBJ,aAAA,CAA+CK,SAAA;AAEzE,OAAO,MAAMC,cAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW,QAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAAqC;EACzC,OAAAG,MAAA,EAAAE,SAAA,IAA4BT,QAAA,CAAuBQ,eAAA;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAE,MAAA,CAAAI,WAAA,IAAAN,CAAA,QAAAE,MAAA,CAAAK,OAAA;IAGjDF,EAAA,GAAAG,EAAA;MAAC;QAAAC,cAAA;QAAAC;MAAA,IAAAF,EAAgF;MAAA,IAC3EC,cAAA;QAAA,OACKP,MAAA,CAAAI,WAAA,CAAAK,IAAA,CAAAC,UAAA,IAAwCA,UAAA,CAAAC,IAAA,KAAoBJ,cAAA;MAAA;MAAA,IAGjEC,UAAA;QAAA,OACKR,MAAA,CAAAK,OAAA,CAAAI,IAAA,CAAAG,MAAA,IAAgCA,MAAA,CAAAD,IAAA,KAAgBH,UAAA;MAAA;MAAA;IAAA;IAI3DV,CAAA,MAAAE,MAAA,CAAAI,WAAA;IAAAN,CAAA,MAAAE,MAAA,CAAAK,OAAA;IAAAP,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAXF,MAAAe,eAAA,GAAwBV,EAYd;EAAA,IAAAG,EAAA;EAAA,IAAAR,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAe,eAAA,IAAAf,CAAA,QAAAC,QAAA;IAIRO,EAAA,GAAAQ,IAAA,CAAApB,iBAAA,CAAAqB,QAAA;MAAAC,KAAA;QAAAhB,MAAA;QAAAa,eAAA;QAAAX;MAAA;MAAAH;IAAA,C;;;;;;;;SAAAO,E;CAIJ;AAEA,OAAO,MAAMW,SAAA,GAAYA,CAAA;EAAA,OAA2BzB,UAAA,CAAAE,iBAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useEffect","useState","RootConfigContext","undefined","ConfigProvider","t0","$","children","config","configFromProps","setConfig","t1","t2","t3","collections","globals","t4","collectionSlug","globalSlug","find","collection","slug","global","getEntityConfig","_jsx","Provider","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nexport type ClientConfigContext = {\n config: ClientConfig\n getEntityConfig: (args: {\n collectionSlug?: string\n globalSlug?: string\n }) => ClientCollectionConfig | ClientGlobalConfig | null\n setConfig: (config: ClientConfig) => void\n}\n\nexport type EntityConfigContext = {\n collectionConfig?: ClientCollectionConfig\n globalConfig?: ClientGlobalConfig\n setEntityConfig: (args: {\n collectionConfig?: ClientCollectionConfig | null\n globalConfig?: ClientGlobalConfig | null\n }) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(configFromProps)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n setConfig(configFromProps)\n }, [configFromProps])\n\n const getEntityConfig = useCallback(\n ({ collectionSlug, globalSlug }: { collectionSlug?: string; globalSlug?: string }) => {\n if (collectionSlug) {\n return config.collections.find((collection) => collection.slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find((global) => global.slug === globalSlug)\n }\n\n return null\n },\n [config],\n )\n\n return (\n <RootConfigContext.Provider value={{ config, getEntityConfig, setConfig }}>\n {children}\n </RootConfigContext.Provider>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => useContext(RootConfigContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAoBnF,MAAMC,iBAAA,gBAAoBL,aAAA,CAA+CM,SAAA;AAEzE,OAAO,MAAMC,cAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,QAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAAqC;EACzC,OAAAG,MAAA,EAAAE,SAAA,IAA4BT,QAAA,CAAuBQ,eAAA;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAN,CAAA,QAAAG,eAAA;IAIzCE,EAAA,GAAAA,CAAA;MACRD,SAAA,CAAUD,eAAA;IAAA;IACTG,EAAA,IAACH,eAAA;IAAgBH,CAAA,MAAAG,eAAA;IAAAH,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAD,EAAA,GAAAL,CAAA;IAAAM,EAAA,GAAAN,CAAA;EAAA;EAFpBN,SAAA,CAAUW,EAEV,EAAGC,EAAiB;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAE,MAAA,CAAAM,WAAA,IAAAR,CAAA,QAAAE,MAAA,CAAAO,OAAA;IAGlBF,EAAA,GAAAG,EAAA;MAAC;QAAAC,cAAA;QAAAC;MAAA,IAAAF,EAAgF;MAAA,IAC3EC,cAAA;QAAA,OACKT,MAAA,CAAAM,WAAA,CAAAK,IAAA,CAAAC,UAAA,IAAwCA,UAAA,CAAAC,IAAA,KAAoBJ,cAAA;MAAA;MAAA,IAGjEC,UAAA;QAAA,OACKV,MAAA,CAAAO,OAAA,CAAAI,IAAA,CAAAG,MAAA,IAAgCA,MAAA,CAAAD,IAAA,KAAgBH,UAAA;MAAA;MAAA;IAAA;IAI3DZ,CAAA,MAAAE,MAAA,CAAAM,WAAA;IAAAR,CAAA,MAAAE,MAAA,CAAAO,OAAA;IAAAT,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAXF,MAAAiB,eAAA,GAAwBV,EAYd;EAAA,IAAAG,EAAA;EAAA,IAAAV,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAiB,eAAA,IAAAjB,CAAA,QAAAC,QAAA;IAIRS,EAAA,GAAAQ,IAAA,CAAAtB,iBAAA,CAAAuB,QAAA;MAAAC,KAAA;QAAAlB,MAAA;QAAAe,eAAA;QAAAb;MAAA;MAAAH;IAAA,C;;;;;;;;SAAAS,E;CAIJ;AAEA,OAAO,MAAMW,SAAA,GAAYA,CAAA;EAAA,OAA2B5B,UAAA,CAAAG,iBAAW;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAK9D,OAAO,KAAsE,MAAM,OAAO,CAAA;AAE1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;AAErE,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmKtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAK9D,OAAO,KAA+E,MAAM,OAAO,CAAA;AAEnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;AAErE,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoKtD,CAAA"}
@@ -1,13 +1,13 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
- import { useRouter } from 'next/navigation.js';
4
+ import { useRouter, useSearchParams } from 'next/navigation.js';
5
5
  import { isNumber } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
- import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
7
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
8
8
  import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
9
9
  import { usePreferences } from '../Preferences/index.js';
10
- import { useSearchParams } from '../SearchParams/index.js';
10
+ import { createParams } from '../SearchParams/index.js';
11
11
  const Context = /*#__PURE__*/createContext({});
12
12
  export const useListQuery = () => {
13
13
  return useContext(Context);
@@ -28,9 +28,8 @@ export const ListQueryProvider = ({
28
28
  const {
29
29
  setPreference
30
30
  } = usePreferences();
31
- const {
32
- searchParams
33
- } = useSearchParams();
31
+ const rawSearchParams = useSearchParams();
32
+ const searchParams = useMemo(() => createParams(rawSearchParams), [rawSearchParams]);
34
33
  const {
35
34
  onQueryChange
36
35
  } = useListDrawerContext();