@payloadcms/ui 3.25.0 → 3.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/elements/AnimateHeight/index.scss +7 -5
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +2 -3
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +13 -2
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/FieldSelect/index.js +1 -1
  12. package/dist/elements/FieldSelect/index.js.map +1 -1
  13. package/dist/elements/Localizer/index.d.ts.map +1 -1
  14. package/dist/elements/Localizer/index.js +36 -24
  15. package/dist/elements/Localizer/index.js.map +1 -1
  16. package/dist/elements/Logout/index.d.ts.map +1 -1
  17. package/dist/elements/Logout/index.js +4 -9
  18. package/dist/elements/Logout/index.js.map +1 -1
  19. package/dist/elements/Nav/context.d.ts.map +1 -1
  20. package/dist/elements/Nav/context.js +8 -1
  21. package/dist/elements/Nav/context.js.map +1 -1
  22. package/dist/elements/PublishButton/index.js +1 -0
  23. package/dist/elements/PublishButton/index.js.map +1 -1
  24. package/dist/elements/RelationshipTable/index.d.ts +1 -1
  25. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  26. package/dist/elements/RelationshipTable/index.js +4 -11
  27. package/dist/elements/RelationshipTable/index.js.map +1 -1
  28. package/dist/elements/TableColumns/context.d.ts +4 -0
  29. package/dist/elements/TableColumns/context.d.ts.map +1 -0
  30. package/dist/elements/TableColumns/context.js +4 -0
  31. package/dist/elements/TableColumns/context.js.map +1 -0
  32. package/dist/elements/TableColumns/index.d.ts +3 -31
  33. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/index.js +49 -164
  35. package/dist/elements/TableColumns/index.js.map +1 -1
  36. package/dist/elements/TableColumns/types.d.ts +52 -0
  37. package/dist/elements/TableColumns/types.d.ts.map +1 -0
  38. package/dist/elements/TableColumns/types.js +2 -0
  39. package/dist/elements/TableColumns/types.js.map +1 -0
  40. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
  41. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  42. package/dist/elements/WhereBuilder/Condition/index.js +7 -7
  43. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  44. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  45. package/dist/elements/WhereBuilder/index.js +22 -31
  46. package/dist/elements/WhereBuilder/index.js.map +1 -1
  47. package/dist/elements/WhereBuilder/types.d.ts +6 -2
  48. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  49. package/dist/elements/WhereBuilder/types.js.map +1 -1
  50. package/dist/exports/client/index.d.ts +1 -1
  51. package/dist/exports/client/index.d.ts.map +1 -1
  52. package/dist/exports/client/index.js +11 -11
  53. package/dist/exports/client/index.js.map +4 -4
  54. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  55. package/dist/fields/Upload/HasMany/index.js +12 -4
  56. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  57. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  58. package/dist/fields/Upload/HasOne/index.js +15 -5
  59. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  60. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  61. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  62. package/dist/fields/Upload/RelationshipContent/index.js +13 -11
  63. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  64. package/dist/forms/Form/context.d.ts +11 -1
  65. package/dist/forms/Form/context.d.ts.map +1 -1
  66. package/dist/forms/Form/context.js +13 -1
  67. package/dist/forms/Form/context.js.map +1 -1
  68. package/dist/forms/Form/index.d.ts.map +1 -1
  69. package/dist/forms/Form/index.js +14 -7
  70. package/dist/forms/Form/index.js.map +1 -1
  71. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  72. package/dist/forms/Form/initContextState.js +2 -0
  73. package/dist/forms/Form/initContextState.js.map +1 -1
  74. package/dist/forms/Form/types.d.ts +9 -0
  75. package/dist/forms/Form/types.d.ts.map +1 -1
  76. package/dist/forms/Form/types.js.map +1 -1
  77. package/dist/forms/Submit/index.d.ts.map +1 -1
  78. package/dist/forms/Submit/index.js +3 -2
  79. package/dist/forms/Submit/index.js.map +1 -1
  80. package/dist/providers/ListQuery/context.d.ts +4 -0
  81. package/dist/providers/ListQuery/context.d.ts.map +1 -0
  82. package/dist/providers/ListQuery/context.js +4 -0
  83. package/dist/providers/ListQuery/context.js.map +1 -0
  84. package/dist/providers/ListQuery/index.d.ts +2 -27
  85. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  86. package/dist/providers/ListQuery/index.js +51 -37
  87. package/dist/providers/ListQuery/index.js.map +1 -1
  88. package/dist/providers/ListQuery/types.d.ts +33 -0
  89. package/dist/providers/ListQuery/types.d.ts.map +1 -0
  90. package/dist/providers/ListQuery/types.js +2 -0
  91. package/dist/providers/ListQuery/types.js.map +1 -0
  92. package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
  93. package/dist/styles.css +1 -1
  94. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  95. package/dist/utilities/copyDataFromLocale.js +6 -2
  96. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  97. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  98. package/dist/utilities/handleFormStateLocking.js +4 -2
  99. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  100. package/dist/views/List/index.d.ts.map +1 -1
  101. package/dist/views/List/index.js +0 -7
  102. package/dist/views/List/index.js.map +1 -1
  103. package/package.json +4 -4
@@ -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","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","handler","clientUploadContext","filename","name","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","prevFields","isFirstRenderRef","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","_jsx","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n let clientUploadContext = null\n let filename = file.name\n clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n const prevFields = useRef(contextRef.current.fields)\n const isFirstRenderRef = useRef(true)\n\n useDebouncedEffect(\n () => {\n if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {\n if (modified) {\n void executeOnChange(submitted)\n }\n }\n\n isFirstRenderRef.current = false\n prevFields.current = contextRef.current.fields\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [modified, submitted, contextRef.current.fields],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n return (\n <form\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </form>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","handler","clientUploadContext","filename","name","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","prevFields","isFirstRenderRef","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","El","_jsx","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n let clientUploadContext = null\n let filename = file.name\n clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n const prevFields = useRef(contextRef.current.fields)\n const isFirstRenderRef = useRef(true)\n\n useDebouncedEffect(\n () => {\n if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {\n if (modified) {\n void executeOnChange(submitted)\n }\n }\n\n isFirstRenderRef.current = false\n prevFields.current = contextRef.current.fields\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [modified, submitted, contextRef.current.fields],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"initContextState.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/initContextState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAUR,MAAM,YAAY,CAAA;AAanB,eAAO,MAAM,gBAAgB,EAAE,OA2B9B,CAAA"}
1
+ {"version":3,"file":"initContextState.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/initContextState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAUR,MAAM,YAAY,CAAA;AAcnB,eAAO,MAAM,gBAAgB,EAAE,OA4B9B,CAAA"}
@@ -7,6 +7,7 @@ const validateForm = () => undefined;
7
7
  const createFormData = () => undefined;
8
8
  const setModified = () => undefined;
9
9
  const setProcessing = () => undefined;
10
+ const setBackgroundProcessing = () => undefined;
10
11
  const setSubmitted = () => undefined;
11
12
  const reset = () => undefined;
12
13
  export const initContextState = {
@@ -28,6 +29,7 @@ export const initContextState = {
28
29
  replaceFieldRow: () => undefined,
29
30
  replaceState: () => undefined,
30
31
  reset,
32
+ setBackgroundProcessing,
31
33
  setDisabled: () => undefined,
32
34
  setIsValid: () => undefined,
33
35
  setModified,
@@ -1 +1 @@
1
- {"version":3,"file":"initContextState.js","names":["submit","undefined","getSiblingData","dispatchFields","validateForm","createFormData","setModified","setProcessing","setSubmitted","reset","initContextState","addFieldRow","buildRowErrors","disabled","fields","formRef","getData","getDataByPath","getField","getFields","initializing","isValid","removeFieldRow","replaceFieldRow","replaceState","setDisabled","setIsValid"],"sources":["../../../src/forms/Form/initContextState.ts"],"sourcesContent":["'use client'\nimport type { Data, FormField, FormState } from 'payload'\n\nimport type {\n Context,\n CreateFormData,\n DispatchFields,\n GetSiblingData,\n Reset,\n SetModified,\n SetProcessing,\n SetSubmitted,\n Submit,\n ValidateForm,\n} from './types.js'\n\nconst submit: Submit = () => undefined\nconst getSiblingData: GetSiblingData = () => undefined\nconst dispatchFields: DispatchFields = () => undefined\nconst validateForm: ValidateForm = () => undefined\nconst createFormData: CreateFormData = () => undefined\n\nconst setModified: SetModified = () => undefined\nconst setProcessing: SetProcessing = () => undefined\nconst setSubmitted: SetSubmitted = () => undefined\nconst reset: Reset = () => undefined\n\nexport const initContextState: Context = {\n addFieldRow: () => undefined,\n buildRowErrors: () => undefined,\n createFormData,\n disabled: false,\n dispatchFields,\n fields: {},\n formRef: null,\n getData: (): Data => undefined,\n getDataByPath: () => undefined,\n getField: (): FormField => undefined,\n getFields: (): FormState => ({}),\n getSiblingData,\n initializing: undefined,\n isValid: true,\n removeFieldRow: () => undefined,\n replaceFieldRow: () => undefined,\n replaceState: () => undefined,\n reset,\n setDisabled: () => undefined,\n setIsValid: () => undefined,\n setModified,\n setProcessing,\n setSubmitted,\n submit,\n\n validateForm,\n}\n"],"mappings":"AAAA;;AAgBA,MAAMA,MAAA,GAAiBA,CAAA,KAAMC,SAAA;AAC7B,MAAMC,cAAA,GAAiCA,CAAA,KAAMD,SAAA;AAC7C,MAAME,cAAA,GAAiCA,CAAA,KAAMF,SAAA;AAC7C,MAAMG,YAAA,GAA6BA,CAAA,KAAMH,SAAA;AACzC,MAAMI,cAAA,GAAiCA,CAAA,KAAMJ,SAAA;AAE7C,MAAMK,WAAA,GAA2BA,CAAA,KAAML,SAAA;AACvC,MAAMM,aAAA,GAA+BA,CAAA,KAAMN,SAAA;AAC3C,MAAMO,YAAA,GAA6BA,CAAA,KAAMP,SAAA;AACzC,MAAMQ,KAAA,GAAeA,CAAA,KAAMR,SAAA;AAE3B,OAAO,MAAMS,gBAAA,GAA4B;EACvCC,WAAA,EAAaA,CAAA,KAAMV,SAAA;EACnBW,cAAA,EAAgBA,CAAA,KAAMX,SAAA;EACtBI,cAAA;EACAQ,QAAA,EAAU;EACVV,cAAA;EACAW,MAAA,EAAQ,CAAC;EACTC,OAAA,EAAS;EACTC,OAAA,EAASA,CAAA,KAAYf,SAAA;EACrBgB,aAAA,EAAeA,CAAA,KAAMhB,SAAA;EACrBiB,QAAA,EAAUA,CAAA,KAAiBjB,SAAA;EAC3BkB,SAAA,EAAWA,CAAA,MAAkB,CAAC;EAC9BjB,cAAA;EACAkB,YAAA,EAAcnB,SAAA;EACdoB,OAAA,EAAS;EACTC,cAAA,EAAgBA,CAAA,KAAMrB,SAAA;EACtBsB,eAAA,EAAiBA,CAAA,KAAMtB,SAAA;EACvBuB,YAAA,EAAcA,CAAA,KAAMvB,SAAA;EACpBQ,KAAA;EACAgB,WAAA,EAAaA,CAAA,KAAMxB,SAAA;EACnByB,UAAA,EAAYA,CAAA,KAAMzB,SAAA;EAClBK,WAAA;EACAC,aAAA;EACAC,YAAA;EACAR,MAAA;EAEAI;AACF","ignoreList":[]}
1
+ {"version":3,"file":"initContextState.js","names":["submit","undefined","getSiblingData","dispatchFields","validateForm","createFormData","setModified","setProcessing","setBackgroundProcessing","setSubmitted","reset","initContextState","addFieldRow","buildRowErrors","disabled","fields","formRef","getData","getDataByPath","getField","getFields","initializing","isValid","removeFieldRow","replaceFieldRow","replaceState","setDisabled","setIsValid"],"sources":["../../../src/forms/Form/initContextState.ts"],"sourcesContent":["'use client'\nimport type { Data, FormField, FormState } from 'payload'\n\nimport type {\n Context,\n CreateFormData,\n DispatchFields,\n GetSiblingData,\n Reset,\n SetModified,\n SetProcessing,\n SetSubmitted,\n Submit,\n ValidateForm,\n} from './types.js'\n\nconst submit: Submit = () => undefined\nconst getSiblingData: GetSiblingData = () => undefined\nconst dispatchFields: DispatchFields = () => undefined\nconst validateForm: ValidateForm = () => undefined\nconst createFormData: CreateFormData = () => undefined\n\nconst setModified: SetModified = () => undefined\nconst setProcessing: SetProcessing = () => undefined\nconst setBackgroundProcessing: SetProcessing = () => undefined\nconst setSubmitted: SetSubmitted = () => undefined\nconst reset: Reset = () => undefined\n\nexport const initContextState: Context = {\n addFieldRow: () => undefined,\n buildRowErrors: () => undefined,\n createFormData,\n disabled: false,\n dispatchFields,\n fields: {},\n formRef: null,\n getData: (): Data => undefined,\n getDataByPath: () => undefined,\n getField: (): FormField => undefined,\n getFields: (): FormState => ({}),\n getSiblingData,\n initializing: undefined,\n isValid: true,\n removeFieldRow: () => undefined,\n replaceFieldRow: () => undefined,\n replaceState: () => undefined,\n reset,\n setBackgroundProcessing,\n setDisabled: () => undefined,\n setIsValid: () => undefined,\n setModified,\n setProcessing,\n setSubmitted,\n submit,\n\n validateForm,\n}\n"],"mappings":"AAAA;;AAgBA,MAAMA,MAAA,GAAiBA,CAAA,KAAMC,SAAA;AAC7B,MAAMC,cAAA,GAAiCA,CAAA,KAAMD,SAAA;AAC7C,MAAME,cAAA,GAAiCA,CAAA,KAAMF,SAAA;AAC7C,MAAMG,YAAA,GAA6BA,CAAA,KAAMH,SAAA;AACzC,MAAMI,cAAA,GAAiCA,CAAA,KAAMJ,SAAA;AAE7C,MAAMK,WAAA,GAA2BA,CAAA,KAAML,SAAA;AACvC,MAAMM,aAAA,GAA+BA,CAAA,KAAMN,SAAA;AAC3C,MAAMO,uBAAA,GAAyCA,CAAA,KAAMP,SAAA;AACrD,MAAMQ,YAAA,GAA6BA,CAAA,KAAMR,SAAA;AACzC,MAAMS,KAAA,GAAeA,CAAA,KAAMT,SAAA;AAE3B,OAAO,MAAMU,gBAAA,GAA4B;EACvCC,WAAA,EAAaA,CAAA,KAAMX,SAAA;EACnBY,cAAA,EAAgBA,CAAA,KAAMZ,SAAA;EACtBI,cAAA;EACAS,QAAA,EAAU;EACVX,cAAA;EACAY,MAAA,EAAQ,CAAC;EACTC,OAAA,EAAS;EACTC,OAAA,EAASA,CAAA,KAAYhB,SAAA;EACrBiB,aAAA,EAAeA,CAAA,KAAMjB,SAAA;EACrBkB,QAAA,EAAUA,CAAA,KAAiBlB,SAAA;EAC3BmB,SAAA,EAAWA,CAAA,MAAkB,CAAC;EAC9BlB,cAAA;EACAmB,YAAA,EAAcpB,SAAA;EACdqB,OAAA,EAAS;EACTC,cAAA,EAAgBA,CAAA,KAAMtB,SAAA;EACtBuB,eAAA,EAAiBA,CAAA,KAAMvB,SAAA;EACvBwB,YAAA,EAAcA,CAAA,KAAMxB,SAAA;EACpBS,KAAA;EACAF,uBAAA;EACAkB,WAAA,EAAaA,CAAA,KAAMzB,SAAA;EACnB0B,UAAA,EAAYA,CAAA,KAAM1B,SAAA;EAClBK,WAAA;EACAC,aAAA;EACAE,YAAA;EACAT,MAAA;EAEAI;AACF","ignoreList":[]}
@@ -17,6 +17,10 @@ export type FormProps = {
17
17
  * you can disable checks that the form makes before it submits
18
18
  */
19
19
  disableValidationOnSubmit?: boolean;
20
+ /**
21
+ * If you don't want the form to be a <form> element, you can pass a string here to use as the wrapper element.
22
+ */
23
+ el?: string;
20
24
  /**
21
25
  * 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.
22
26
  * 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
@@ -192,6 +196,11 @@ export type Context = {
192
196
  }) => void;
193
197
  replaceState: (state: FormState) => void;
194
198
  reset: Reset;
199
+ /**
200
+ * If the form has started processing in the background (e.g.
201
+ * if autosave is running), this will be true.
202
+ */
203
+ setBackgroundProcessing: SetProcessing;
195
204
  setDisabled: (disabled: boolean) => void;
196
205
  setIsValid: (processing: boolean) => void;
197
206
  setModified: SetModified;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/types.ts"],"names":[],"mappings":"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"}
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 /**\n * Determines if this Form is the main, top-level Form of a document. If set to true, the\n * Form's children will be wrapped in a DocumentFormContext, which lets you access this document\n * Form's data and fields from any child component - even if that child component is wrapped in a child\n * Form (e.g. a lexical block).\n */\n isDocumentForm?: boolean\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState; submitted?: boolean }) => 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?: ((formState) => FormData) | 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 = (\n overrides?: Record<string, unknown>,\n /**\n * If mergeOverrideData true, the data will be merged with the existing data in the form state.\n * @default true\n */\n options?: { mergeOverrideData?: boolean },\n) => FormData | Promise<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 /**\n * If `sanitize` is true, default values will be set for form field properties that are not present in the incoming state.\n * For example, `valid` will be set to true if it is not present in the incoming state.\n */\n sanitize?: 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 /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n isValid: 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 setIsValid: (processing: boolean) => void\n setModified: SetModified\n setProcessing: SetProcessing\n setSubmitted: SetSubmitted\n submit: Submit\n uuid?: string\n validateForm: ValidateForm\n}\n"],"mappings":"AAwMA","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 * If you don't want the form to be a <form> element, you can pass a string here to use as the wrapper element.\n */\n el?: string\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 /**\n * Determines if this Form is the main, top-level Form of a document. If set to true, the\n * Form's children will be wrapped in a DocumentFormContext, which lets you access this document\n * Form's data and fields from any child component - even if that child component is wrapped in a child\n * Form (e.g. a lexical block).\n */\n isDocumentForm?: boolean\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState; submitted?: boolean }) => 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?: ((formState) => FormData) | 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 = (\n overrides?: Record<string, unknown>,\n /**\n * If mergeOverrideData true, the data will be merged with the existing data in the form state.\n * @default true\n */\n options?: { mergeOverrideData?: boolean },\n) => FormData | Promise<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 /**\n * If `sanitize` is true, default values will be set for form field properties that are not present in the incoming state.\n * For example, `valid` will be set to true if it is not present in the incoming state.\n */\n sanitize?: 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 /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n isValid: 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 /**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\n setBackgroundProcessing: SetProcessing\n setDisabled: (disabled: boolean) => void\n setIsValid: (processing: boolean) => void\n setModified: SetModified\n setProcessing: SetProcessing\n setSubmitted: SetSubmitted\n submit: Submit\n uuid?: string\n validateForm: ValidateForm\n}\n"],"mappings":"AA4MA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuCtC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAS3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8CtC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import React from 'react';
5
5
  import { Button } from '../../elements/Button/index.js';
6
- import { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js';
6
+ import { useForm, useFormBackgroundProcessing, useFormInitializing, useFormProcessing } from '../Form/context.js';
7
7
  import './index.scss';
8
8
  const baseClass = 'form-submit';
9
9
  export const FormSubmit = props => {
@@ -17,12 +17,13 @@ export const FormSubmit = props => {
17
17
  ref
18
18
  } = props;
19
19
  const processing = useFormProcessing();
20
+ const backgroundProcessing = useFormBackgroundProcessing();
20
21
  const initializing = useFormInitializing();
21
22
  const {
22
23
  disabled,
23
24
  submit
24
25
  } = useForm();
25
- const canSave = !(disabledFromProps || initializing || processing || disabled);
26
+ const canSave = !(disabledFromProps || initializing || processing || backgroundProcessing || disabled);
26
27
  const handleClick = onClick ?? (programmaticSubmit ? () => {
27
28
  void submit();
28
29
  } : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","type","buttonId","id","children","disabled","disabledFromProps","onClick","programmaticSubmit","ref","processing","initializing","submit","canSave","handleClick","undefined","_jsx","className"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React 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: React.FC<Props> = (props) => {\n const {\n type = 'submit',\n buttonId: id,\n children,\n disabled: disabledFromProps,\n onClick,\n programmaticSubmit,\n ref,\n } = props\n\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,MAAW;AAIlB,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAA+BC,KAAA;EAC1C,MAAM;IACJC,IAAA,GAAO,QAAQ;IACfC,QAAA,EAAUC,EAAE;IACZC,QAAQ;IACRC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAO;IACPC,kBAAkB;IAClBC;EAAG,CACJ,GAAGT,KAAA;EAEJ,MAAMU,UAAA,GAAab,iBAAA;EACnB,MAAMc,YAAA,GAAef,mBAAA;EACrB,MAAM;IAAES,QAAQ;IAAEO;EAAM,CAAE,GAAGjB,OAAA;EAE7B,MAAMkB,OAAA,GAAU,EAAEP,iBAAA,IAAqBK,YAAA,IAAgBD,UAAA,IAAcL,QAAO;EAE5E,MAAMS,WAAA,GACJP,OAAA,KACCC,kBAAA,GACG;IACE,KAAKI,MAAA;EACP,IACAG,SAAQ;EAEd,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWnB,SAAA;cACd,aAAAkB,IAAA,CAACtB,MAAA;MACCe,GAAA,EAAKA,GAAA;MACJ,GAAGT,KAAK;MACTK,QAAA,EAAUQ,OAAA,GAAUE,SAAA,GAAY;MAChCZ,EAAA,EAAIA,EAAA;MACJI,OAAA,EAASO,WAAA;MACTb,IAAA,EAAMA,IAAA;gBAELG;;;AAIT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","Button","useForm","useFormBackgroundProcessing","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","type","buttonId","id","children","disabled","disabledFromProps","onClick","programmaticSubmit","ref","processing","backgroundProcessing","initializing","submit","canSave","handleClick","undefined","_jsx","className"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport {\n useForm,\n useFormBackgroundProcessing,\n useFormInitializing,\n useFormProcessing,\n} from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit: React.FC<Props> = (props) => {\n const {\n type = 'submit',\n buttonId: id,\n children,\n disabled: disabledFromProps,\n onClick,\n programmaticSubmit,\n ref,\n } = props\n\n const processing = useFormProcessing()\n const backgroundProcessing = useFormBackgroundProcessing()\n const initializing = useFormInitializing()\n const { disabled, submit } = useForm()\n\n const canSave = !(\n disabledFromProps ||\n initializing ||\n processing ||\n backgroundProcessing ||\n disabled\n )\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,MAAW;AAIlB,SAASC,MAAM,QAAQ;AACvB,SACEC,OAAO,EACPC,2BAA2B,EAC3BC,mBAAmB,EACnBC,iBAAiB,QACZ;AACP,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAA+BC,KAAA;EAC1C,MAAM;IACJC,IAAA,GAAO,QAAQ;IACfC,QAAA,EAAUC,EAAE;IACZC,QAAQ;IACRC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAO;IACPC,kBAAkB;IAClBC;EAAG,CACJ,GAAGT,KAAA;EAEJ,MAAMU,UAAA,GAAab,iBAAA;EACnB,MAAMc,oBAAA,GAAuBhB,2BAAA;EAC7B,MAAMiB,YAAA,GAAehB,mBAAA;EACrB,MAAM;IAAES,QAAQ;IAAEQ;EAAM,CAAE,GAAGnB,OAAA;EAE7B,MAAMoB,OAAA,GAAU,EACdR,iBAAA,IACAM,YAAA,IACAF,UAAA,IACAC,oBAAA,IACAN,QAAO;EAGT,MAAMU,WAAA,GACJR,OAAA,KACCC,kBAAA,GACG;IACE,KAAKK,MAAA;EACP,IACAG,SAAQ;EAEd,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWpB,SAAA;cACd,aAAAmB,IAAA,CAACxB,MAAA;MACCgB,GAAA,EAAKA,GAAA;MACJ,GAAGT,KAAK;MACTK,QAAA,EAAUS,OAAA,GAAUE,SAAA,GAAY;MAChCb,EAAA,EAAIA,EAAA;MACJI,OAAA,EAASQ,WAAA;MACTd,IAAA,EAAMA,IAAA;gBAELG;;;AAIT","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { IListQueryContext } from './types.js';
2
+ export declare const ListQueryContext: import("react").Context<IListQueryContext>;
3
+ export declare const useListQuery: () => IListQueryContext;
4
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,eAAO,MAAM,gBAAgB,4CAAyC,CAAA;AAEtE,eAAO,MAAM,YAAY,QAAO,iBAAiD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const ListQueryContext = createContext({});
3
+ export const useListQuery = () => useContext(ListQueryContext);
4
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => useContext(ListQueryContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAI1C,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,UAAA,CAAWC,gBAAA","ignoreList":[]}
@@ -1,30 +1,5 @@
1
- import type { ListQuery, PaginatedDocs, Sort, Where } from 'payload';
2
1
  import React from 'react';
3
- type ContextHandlers = {
4
- handlePageChange?: (page: number) => Promise<void>;
5
- handlePerPageChange?: (limit: number) => Promise<void>;
6
- handleSearchChange?: (search: string) => Promise<void>;
7
- handleSortChange?: (sort: string) => Promise<void>;
8
- handleWhereChange?: (where: Where) => Promise<void>;
9
- };
10
- export type ListQueryProps = {
11
- readonly children: React.ReactNode;
12
- readonly collectionSlug?: string;
13
- readonly data: PaginatedDocs;
14
- readonly defaultLimit?: number;
15
- readonly defaultSort?: Sort;
16
- readonly modifySearchParams?: boolean;
17
- readonly onQueryChange?: (query: ListQuery) => void;
18
- readonly preferenceKey?: string;
19
- };
20
- export type ListQueryContext = {
21
- data: PaginatedDocs;
22
- defaultLimit?: number;
23
- defaultSort?: Sort;
24
- query: ListQuery;
25
- refineListData: (args: ListQuery) => Promise<void>;
26
- } & ContextHandlers;
27
- export declare const useListQuery: () => ListQueryContext;
2
+ import type { ListQueryProps } from './types.js';
3
+ export { useListQuery } from './context.js';
28
4
  export declare const ListQueryProvider: React.FC<ListQueryProps>;
29
- export {};
30
5
  //# sourceMappingURL=index.d.ts.map
@@ -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,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpE,OAAO,KAA+E,MAAM,OAAO,CAAA;AAKnG,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,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,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,IAAI,CAAA;IAClB,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,CA2JtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkLtD,CAAA"}