@payloadcms/ui 3.11.1-canary.3f6217a → 3.11.1-canary.eb516b3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +6 -6
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +3 -1
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +30 -19
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +6 -6
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +6 -6
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +14 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +75 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +8 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +260 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.scss +48 -0
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +10 -0
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/types.js +2 -0
- package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -0
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +116 -186
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +9 -9
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +1 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +1 -1
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +4 -1
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +4 -1
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +115 -109
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +6 -6
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/providers/Auth/index.js +3 -3
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.d.ts +2 -6
- package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +19 -10
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +5 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +31 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/abortAndIgnore.d.ts +2 -1
- package/dist/utilities/abortAndIgnore.d.ts.map +1 -1
- package/dist/utilities/abortAndIgnore.js +17 -3
- package/dist/utilities/abortAndIgnore.js.map +1 -1
- package/dist/utilities/parseSearchParams.d.ts +9 -1
- package/dist/utilities/parseSearchParams.d.ts.map +1 -1
- package/dist/utilities/parseSearchParams.js +10 -2
- package/dist/utilities/parseSearchParams.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.d.ts +13 -0
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -0
- package/dist/utilities/schedulePublishHandler.js +38 -0
- package/dist/utilities/schedulePublishHandler.js.map +1 -0
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +13 -22
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +15 -12
- package/dist/views/List/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -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","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","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","AbortController","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","classes","filter","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 CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useIgnoredEffectDebounced } from '../../hooks/useIgnoredEffect.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore } 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: 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 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 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 const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState(\n 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 const createFormData = useCallback<CreateFormData>((overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n 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 locale,\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 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 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","handleAbortRef","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","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","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","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","classes","filter","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 CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useIgnoredEffectDebounced } from '../../hooks/useIgnoredEffect.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n 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 abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n data,\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n 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 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 const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState(\n 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 const createFormData = useCallback<CreateFormData>((overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ 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":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC3B,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC3B,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAqqBvF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","fieldIsSidebar","getFieldPaths","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","clientFieldSchemaMap","collectionSlug","data","field","fieldIndex","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentIndexPath","parentPath","parentPermissions","parentSchemaPath","passesCondition","preferences","previousFormState","renderAllFields","renderFieldFn","req","skipConditionChecks","skipValidation","state","console","warn","indexPath","path","schemaPath","index","requiresRender","fieldPermissions","fieldState","errorPaths","fieldSchema","undefined","initialValue","isSidebar","valid","value","name","hasPermission","read","access","doc","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rows","reduce","acc","row","i","toHexString","fields","find","localized","parentPassesCondition","permissions","previousRows","collapsedRowIDsFromPrefs","collapsed","previousRow","prevRow","admin","initCollapsed","Promise","all","length","disableFormData","blocksValue","rowMetadata","block","blocks","blockType","slug","Error","rowSchemaPath","blockField","blockName","collapsedRowIDs","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabPath","tabSchemaPath","childPermissions","tabPermissions","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FormFieldWithoutComponents,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n fieldIsSidebar,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FormFieldWithoutComponents = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({ doc: fullData, req, siblingData: data })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(\n data?.[field.name] as never,\n {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n jsonError,\n operation,\n preferences,\n req,\n siblingData: data,\n } as any,\n )\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => fieldIsID(field))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n acc.rows.push({\n id: row.id,\n collapsed: (() => {\n // First, check if `previousFormState` has a matching row\n const previousRow = previousRows.find((prevRow) => prevRow.id === row.id)\n if (previousRow?.collapsed !== undefined) {\n return previousRow.collapsed\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })(),\n })\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n fieldState.rows = rows\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const parentPath = path + '.' + i\n const rowSchemaPath = schemaPath + '.' + block.slug\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[parentPath + '.blockType'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[parentPath + '.blockName'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: rowSchemaPath,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n } else {\n childPermissions = parentPermissions\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: tabHasName(tab) ? '' : tabIndexPath,\n parentPassesCondition: passesCondition,\n parentPath: tabHasName(tab) ? tabPath : parentPath,\n parentSchemaPath: tabHasName(tab) ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (requiresRender && renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldState = state[path]\n\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!fieldState) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState,\n formState: state,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","fieldIsSidebar","getFieldPaths","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","clientFieldSchemaMap","collectionSlug","data","field","fieldIndex","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentIndexPath","parentPath","parentPermissions","parentSchemaPath","passesCondition","preferences","previousFormState","renderAllFields","renderFieldFn","req","skipConditionChecks","skipValidation","state","console","warn","indexPath","path","schemaPath","index","requiresRender","fieldPermissions","fieldState","errorPaths","fieldSchema","undefined","initialValue","isSidebar","valid","value","name","hasPermission","read","access","doc","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rows","reduce","acc","row","i","toHexString","fields","find","localized","parentPassesCondition","permissions","previousRows","collapsedRowIDsFromPrefs","collapsed","previousRow","prevRow","admin","initCollapsed","Promise","all","length","disableFormData","blocksValue","rowMetadata","block","blocks","blockType","slug","Error","rowSchemaPath","blockField","blockName","collapsedRowIDs","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabPath","tabSchemaPath","childPermissions","tabPermissions","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FormFieldWithoutComponents,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n fieldIsSidebar,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FormFieldWithoutComponents = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({ doc: fullData, req, siblingData: data })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(\n data?.[field.name] as never,\n {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n jsonError,\n operation,\n preferences,\n req,\n siblingData: data,\n } as any,\n )\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => fieldIsID(field))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n acc.rows.push({\n id: row.id,\n collapsed: (() => {\n // First, check if `previousFormState` has a matching row\n const previousRow = previousRows.find((prevRow) => prevRow.id === row.id)\n if (previousRow?.collapsed !== undefined) {\n return previousRow.collapsed\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })(),\n })\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n fieldState.rows = rows\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const parentPath = path + '.' + i\n const rowSchemaPath = schemaPath + '.' + block.slug\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[parentPath + '.blockType'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[parentPath + '.blockName'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: rowSchemaPath,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n } else {\n childPermissions = parentPermissions\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: tabHasName(tab) ? '' : tabIndexPath,\n parentPassesCondition: passesCondition,\n parentPath: tabHasName(tab) ? tabPath : parentPath,\n parentSchemaPath: tabHasName(tab) ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (requiresRender && renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldState = state[path]\n\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!fieldState) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState,\n formState: state,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -136,7 +136,7 @@ export function AuthProvider({
|
|
|
136
136
|
}, [apiRoute, i18n.language, redirectToInactivityRoute, serverURL, setNewUser, userSlug]);
|
|
137
137
|
const logOut = useCallback(async () => {
|
|
138
138
|
try {
|
|
139
|
-
await requests.post(`${serverURL}${apiRoute}/${
|
|
139
|
+
await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`);
|
|
140
140
|
setNewUser(null);
|
|
141
141
|
revokeTokenAndExpire();
|
|
142
142
|
return true;
|
|
@@ -144,7 +144,7 @@ export function AuthProvider({
|
|
|
144
144
|
toast.error(`Logging out failed: ${e_1.message}`);
|
|
145
145
|
return false;
|
|
146
146
|
}
|
|
147
|
-
}, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser,
|
|
147
|
+
}, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, user]);
|
|
148
148
|
const refreshPermissions = useCallback(async ({
|
|
149
149
|
locale
|
|
150
150
|
} = {}) => {
|
|
@@ -230,7 +230,7 @@ export function AuthProvider({
|
|
|
230
230
|
clearTimeout(forceLogOut);
|
|
231
231
|
}
|
|
232
232
|
};
|
|
233
|
-
}, [tokenExpiration, openModal, i18n, setNewUser, user]);
|
|
233
|
+
}, [tokenExpiration, openModal, i18n, setNewUser, user, redirectToInactivityRoute]);
|
|
234
234
|
return /*#__PURE__*/_jsx(Context.Provider, {
|
|
235
235
|
value: {
|
|
236
236
|
fetchFullUser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUserInMemory","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","refreshTokenTimeoutRef","useRef","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","path","revokeTokenAndExpire","undefined","clearTimeout","current","setNewUser","userResponse","token","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","json","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","credentials","reminder","forceLogOut","remindInTimeFromNow","max","min","forceLogOutInTimeFromNow","_jsx","Provider","value","setUser","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, SanitizedPermissions, User } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\n\nexport type UserWithToken<T = ClientUser> = {\n exp: number\n token: string\n user: T\n}\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<null | User>\n logOut: () => Promise<boolean>\n permissions?: SanitizedPermissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: SanitizedPermissions) => void\n setUser: (user: null | UserWithToken<T>) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: null | T\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: SanitizedPermissions\n user?: ClientUser | null\n}\n\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUserInMemory] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<SanitizedPermissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n const refreshTokenTimeoutRef = React.useRef<ReturnType<typeof setTimeout>>(null)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(adminRoute)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${redirectParam}`,\n }),\n )\n } else {\n router.replace(\n formatAdminURL({\n adminRoute,\n path: logoutInactivityRoute,\n }),\n )\n }\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n clearTimeout(refreshTokenTimeoutRef.current)\n }, [])\n\n const setNewUser = useCallback(\n (userResponse: null | UserWithToken) => {\n if (userResponse?.user) {\n setUserInMemory(userResponse.user)\n setTokenInMemory(userResponse.token)\n setTokenExpiration(userResponse.exp)\n } else {\n setUserInMemory(null)\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n refreshTokenTimeoutRef.current = setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token?refresh`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setNewUser(json)\n } else {\n setNewUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n\n return () => {\n clearTimeout(refreshTokenTimeoutRef.current)\n }\n },\n [\n apiRoute,\n i18n.language,\n redirectToInactivityRoute,\n serverURL,\n setNewUser,\n tokenExpiration,\n userSlug,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setNewUser(json)\n }\n return json.user\n }\n\n setNewUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [apiRoute, i18n.language, redirectToInactivityRoute, serverURL, setNewUser, userSlug],\n )\n\n const logOut = useCallback(async () => {\n try {\n await requests.post(`${serverURL}${apiRoute}/${userSlug}/logout`)\n setNewUser(null)\n revokeTokenAndExpire()\n return true\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n return false\n }\n }, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, userSlug])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: SanitizedPermissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: UserWithToken = await request.json()\n const user = null\n\n setNewUser(json)\n return user\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n\n return null\n }, [serverURL, apiRoute, userSlug, i18n.language, setNewUser])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n const remindInTimeFromNow = Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime), 0)\n const forceLogOutInTimeFromNow = Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0)\n\n if (!user) {\n clearTimeout(reminder)\n clearTimeout(forceLogOut)\n return\n }\n\n if (remainingTime > 0) {\n reminder = setTimeout(() => {\n openModal(stayLoggedInModalSlug)\n }, remindInTimeFromNow)\n\n forceLogOut = setTimeout(() => {\n setNewUser(null)\n redirectToInactivityRoute()\n }, forceLogOutInTimeFromNow)\n }\n\n return () => {\n if (reminder) {\n clearTimeout(reminder)\n }\n if (forceLogOut) {\n clearTimeout(forceLogOut)\n }\n }\n }, [tokenExpiration, openModal, i18n, setNewUser, user])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser: setNewUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUserInMemory","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","refreshTokenTimeoutRef","useRef","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","path","revokeTokenAndExpire","undefined","clearTimeout","current","setNewUser","userResponse","token","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","json","e","error","message","refreshCookieAsync","skipSetUser","logOut","collection","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","credentials","reminder","forceLogOut","remindInTimeFromNow","max","min","forceLogOutInTimeFromNow","_jsx","Provider","value","setUser","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, SanitizedPermissions, User } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\n\nexport type UserWithToken<T = ClientUser> = {\n exp: number\n token: string\n user: T\n}\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<null | User>\n logOut: () => Promise<boolean>\n permissions?: SanitizedPermissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: SanitizedPermissions) => void\n setUser: (user: null | UserWithToken<T>) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: null | T\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: SanitizedPermissions\n user?: ClientUser | null\n}\n\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUserInMemory] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<SanitizedPermissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n const refreshTokenTimeoutRef = React.useRef<ReturnType<typeof setTimeout>>(null)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(adminRoute)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${redirectParam}`,\n }),\n )\n } else {\n router.replace(\n formatAdminURL({\n adminRoute,\n path: logoutInactivityRoute,\n }),\n )\n }\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n clearTimeout(refreshTokenTimeoutRef.current)\n }, [])\n\n const setNewUser = useCallback(\n (userResponse: null | UserWithToken) => {\n if (userResponse?.user) {\n setUserInMemory(userResponse.user)\n setTokenInMemory(userResponse.token)\n setTokenExpiration(userResponse.exp)\n } else {\n setUserInMemory(null)\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n refreshTokenTimeoutRef.current = setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token?refresh`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setNewUser(json)\n } else {\n setNewUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n\n return () => {\n clearTimeout(refreshTokenTimeoutRef.current)\n }\n },\n [\n apiRoute,\n i18n.language,\n redirectToInactivityRoute,\n serverURL,\n setNewUser,\n tokenExpiration,\n userSlug,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setNewUser(json)\n }\n return json.user\n }\n\n setNewUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [apiRoute, i18n.language, redirectToInactivityRoute, serverURL, setNewUser, userSlug],\n )\n\n const logOut = useCallback(async () => {\n try {\n await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)\n setNewUser(null)\n revokeTokenAndExpire()\n return true\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n return false\n }\n }, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, user])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: SanitizedPermissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: UserWithToken = await request.json()\n const user = null\n\n setNewUser(json)\n return user\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n\n return null\n }, [serverURL, apiRoute, userSlug, i18n.language, setNewUser])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n const remindInTimeFromNow = Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime), 0)\n const forceLogOutInTimeFromNow = Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0)\n\n if (!user) {\n clearTimeout(reminder)\n clearTimeout(forceLogOut)\n return\n }\n\n if (remainingTime > 0) {\n reminder = setTimeout(() => {\n openModal(stayLoggedInModalSlug)\n }, remindInTimeFromNow)\n\n forceLogOut = setTimeout(() => {\n setNewUser(null)\n redirectToInactivityRoute()\n }, forceLogOutInTimeFromNow)\n }\n\n return () => {\n if (reminder) {\n clearTimeout(reminder)\n }\n if (forceLogOut) {\n clearTimeout(forceLogOut)\n }\n }\n }, [tokenExpiration, openModal, i18n, setNewUser, user, redirectToInactivityRoute])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser: setNewUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
import type { DocumentEvent } from 'payload';
|
|
1
2
|
import React from 'react';
|
|
2
|
-
export type UpdatedDocument = {
|
|
3
|
-
entitySlug: string;
|
|
4
|
-
id?: number | string;
|
|
5
|
-
updatedAt: string;
|
|
6
|
-
};
|
|
7
3
|
export declare const DocumentEventsProvider: React.FC<{
|
|
8
4
|
children: React.ReactNode;
|
|
9
5
|
}>;
|
|
10
6
|
export declare const useDocumentEvents: () => {
|
|
11
7
|
mostRecentUpdate: any;
|
|
12
|
-
reportUpdate: (doc:
|
|
8
|
+
reportUpdate: (doc: DocumentEvent) => any;
|
|
13
9
|
};
|
|
14
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentEvents/index.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentEvents/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAA8C,MAAM,OAAO,CAAA;AAOlE,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAI1E,CAAA;AAED,eAAO,MAAM,iBAAiB;;wBATR,aAAa;CASuB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useState","Context","mostRecentUpdate","reportUpdate","doc","DocumentEventsProvider","t0","$","children","t1","_jsx","Provider","value","useDocumentEvents"],"sources":["../../../src/providers/DocumentEvents/index.tsx"],"sourcesContent":["'use client'\nimport
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useContext","useState","Context","mostRecentUpdate","reportUpdate","doc","DocumentEventsProvider","t0","$","children","t1","_jsx","Provider","value","useDocumentEvents"],"sources":["../../../src/providers/DocumentEvents/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentEvent } from 'payload'\n\nimport React, { createContext, useContext, useState } from 'react'\n\nconst Context = createContext({\n mostRecentUpdate: null,\n reportUpdate: (doc: DocumentEvent) => null,\n})\n\nexport const DocumentEventsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [mostRecentUpdate, reportUpdate] = useState<DocumentEvent>(null)\n\n return <Context.Provider value={{ mostRecentUpdate, reportUpdate }}>{children}</Context.Provider>\n}\n\nexport const useDocumentEvents = () => useContext(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ;AAE3D,MAAMC,OAAA,gBAAUH,aAAA,CAAc;EAC5BI,gBAAA,EAAkB;EAClBC,YAAA,EAAeC,GAAA,IAAuB;AACxC;AAEA,OAAO,MAAMC,sBAAA,GAAkEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY;EAAA,IAAAF,EAAY;EAC1F,OAAAJ,gBAAA,EAAAC,YAAA,IAAyCH,QAAA,KAAwB;EAAA,IAAAS,EAAA;EAAA,IAAAF,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAL,gBAAA;IAE1DO,EAAA,GAAAC,IAAA,CAAAT,OAAA,CAAAU,QAAA;MAAAC,KAAA;QAAAV,gBAAA;QAAAC;MAAA;MAAAK;IAAA,C;;;;;;;SAAAC,E;CACT;AAEA,OAAO,MAAMI,iBAAA,GAAoBA,CAAA;EAAA,OAAMd,UAAA,CAAAE,OAAW;AAAA","ignoreList":[]}
|