Skip to content

Field Component

The Field component renders an individual form field using the appropriate input component based on its type. It supports both default and custom renderers.

Props

NameTypeDescription
fieldFieldDTOField definition (type, label, validation, etc.).
valueanyCurrent value of the field.
onChange(val: any) => voidCallback to update the field value.
errorstring | null (optional)Error message for the field.
renderersRecord<string, React.ComponentType<FieldRendererProps>> (optional)Custom renderers for field types.

Usage

tsx
<Field
  field={fieldDTO}
  value={currentValue}
  onChange={handleChange}
  error={error}
  renderers={{ type: CustomRenderer }}
/>

Note:

type should only be [text, email, password, textarea, number, select, checkbox, date, autocomplete, multi-autocomplete]


Features

  • Default Renderers: Supports text, number, date, select, checkbox, autocomplete, and multi-autocomplete.
  • Custom Renderers: Allows overriding default renderer for any field type.
  • Error Handling: Passes error messages to input components for display.

Example

tsx
const fieldDTO = {
  id: "email",
  type: "email",
  label: "Email Address",
  required: true,
};

<Field
  field={fieldDTO}
  value={"user@example.com"}
  onChange={(val) => { /* handle change */ }}
  error={null}
/>