This noticeably improves performance in the admin panel, for example
when there are multiple richtext editors on one page (& likely
performance in other areas too, though I mainly tested rich text).
The babel plugin currently only optimizes files with a 'use client'
directive at the top - thus we have to make sure to add use client
wherever possible, even if it's imported by a parent client component.
There's one single component that broke when it was compiled using the
React compiler (it stopped being reactive and failed one of our admin
e2e tests):
150808f608
opting out of it completely fixed that issue
Fixes https://github.com/payloadcms/payload/issues/7366
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
'use client'
|
|
import type { Data, FormField, FormState } from 'payload'
|
|
|
|
import type {
|
|
Context,
|
|
CreateFormData,
|
|
DispatchFields,
|
|
GetSiblingData,
|
|
Reset,
|
|
SetModified,
|
|
SetProcessing,
|
|
SetSubmitted,
|
|
Submit,
|
|
ValidateForm,
|
|
} from './types.js'
|
|
|
|
const submit: Submit = () => undefined
|
|
const getSiblingData: GetSiblingData = () => undefined
|
|
const dispatchFields: DispatchFields = () => undefined
|
|
const validateForm: ValidateForm = () => undefined
|
|
const createFormData: CreateFormData = () => undefined
|
|
|
|
const setModified: SetModified = () => undefined
|
|
const setProcessing: SetProcessing = () => undefined
|
|
const setSubmitted: SetSubmitted = () => undefined
|
|
const reset: Reset = () => undefined
|
|
|
|
export const initContextState: Context = {
|
|
addFieldRow: () => undefined,
|
|
buildRowErrors: () => undefined,
|
|
createFormData,
|
|
disabled: false,
|
|
dispatchFields,
|
|
fields: {},
|
|
formRef: null,
|
|
getData: (): Data => undefined,
|
|
getDataByPath: () => undefined,
|
|
getField: (): FormField => undefined,
|
|
getFields: (): FormState => ({}),
|
|
getSiblingData,
|
|
initializing: undefined,
|
|
removeFieldRow: () => undefined,
|
|
replaceFieldRow: () => undefined,
|
|
replaceState: () => undefined,
|
|
reset,
|
|
setDisabled: () => undefined,
|
|
setModified,
|
|
setProcessing,
|
|
setSubmitted,
|
|
submit,
|
|
validateForm,
|
|
}
|