Skip to content

FormBuilder onChange callback not triggered when options prop is provided #631

@ceallachcappuccino

Description

@ceallachcappuccino

Describe the bug
The onChange callback of FormBuilder from @formio/react is not triggered when the options prop is provided. This happens even if options is an empty object (options={{}}). As soon as options is set, form changes made in the builder UI no longer invoke the onChange handler.

Version/Branch
@formio/react: "6.1.1"
Framework: Next.js (App/Pages Router)
Rendering: client-side only (ssr: false via dynamic import)

To Reproduce
Steps to reproduce the behavior:

  1. Create a Next.js project and dynamically import FormBuilder:
   const FormBuilder = dynamic(
     () => import('@formio/react').then((module) => module.FormBuilder),
     { ssr: false }
   )
  1. Define a simple onChange callback:
const handleFormChange = (schema: FormType) => {
  console.log('i handled the change')
}
  1. Render FormBuilder with initialForm, onChange, and any options prop (even an empty object):
<FormBuilder
  initialForm={initialForm}
  onChange={handleFormChange}
  options={{}}
/>

(The same issue occurs with a fully customized options.builder configuration.)

  1. Interact with the FormBuilder UI (add/remove/update components).
  2. Observe that handleFormChange is never called.

Expected behavior
The onChange callback should be triggered whenever the form schema changes in the FormBuilder, regardless of whether the options prop is provided (including options={{}}).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions