FesaComponents

Formularios

Campos react-hook-form listos para usar.

import { FormTextField, FormCurrencyField, FormDateField } from "@fesa/components/forms";

El contrato base

Todos los campos comparten estas props (BaseFormFieldProps):

PropTipoRequeridaDescripción
controlControl<TFieldValues>síEl control de react-hook-form
nameTNamesíNombre tipado contra el schema
labelReactNode—Etiqueta del campo
descriptionReactNode—Texto de ayuda bajo el campo
placeholderstring—Placeholder
disabledboolean—Deshabilita el campo
requiredboolean—Marca visual de requerido
tooltipTooltipConfig | string—Ayuda contextual junto al label
classNamestring—Clases extra

Uso mínimo

const form = useForm<z.infer<typeof schema>>({ resolver: zodResolver(schema) });

<Form {...form}>
  <form onSubmit={form.handleSubmit(onSubmit)}>
    <FormTextField control={form.control} name="name" label="Nombre" required />
    <FormCurrencyField control={form.control} name="price" label="Precio" />
    <FormSubmitButton>Guardar</FormSubmitButton>
  </form>
</Form>

En esta pagina