Skip to content

FormPluginComponents

FormPluginComponents = object

Defined in: packages/forms/src/types.ts:451

The set of UI components a FormPlugin must provide.

Each component handles rendering a specific input type. The form and submitButton components wrap the overall form structure.

const components: FormPluginComponents = {
textInput: MyTextInput,
numberInput: MyNumberInput,
select: MySelect,
checkbox: MyCheckbox,
form: MyFormWrapper,
submitButton: MySubmitButton,
};

checkbox: React.ComponentType<FieldComponentProps>

Defined in: packages/forms/src/types.ts:459

Component for rendering boolean column inputs as a checkbox.


optional childTable: React.ComponentType<ChildTableComponentProps>

Defined in: packages/forms/src/types.ts:469

Component for rendering a parent-child / dynamic field array section. Optional — if a plugin omits this, a built-in fallback (DefaultChildTable) is used so existing plugins keep working unchanged.


form: React.ComponentType<FormWrapperProps>

Defined in: packages/forms/src/types.ts:461

Wrapper component for the entire form element. Receives onSubmit and children.


numberInput: React.ComponentType<FieldComponentProps>

Defined in: packages/forms/src/types.ts:455

Component for rendering integer/number column inputs.


select: React.ComponentType<FieldComponentProps>

Defined in: packages/forms/src/types.ts:457

Component for rendering enum column inputs as a dropdown select.


submitButton: React.ComponentType<SubmitButtonProps>

Defined in: packages/forms/src/types.ts:463

Component for the form’s submit button. Receives loading state and label.


textInput: React.ComponentType<FieldComponentProps>

Defined in: packages/forms/src/types.ts:453

Component for rendering text/varchar column inputs.


optional upload: React.ComponentType<FieldComponentProps>

Defined in: packages/forms/src/types.ts:476

Component for rendering file upload columns. Required for any plugin that wants to render fields decorated with the upload() helper — plugins that don’t ship one fall back to the plain text input so the form still renders.