react-use-form-lite
Version:
Hook de formularios para React moderno: rápido, ligero, sin dependencias y compatible con TypeScript. Soporta inputs, selects, checkboxes, radios y archivos con validación simple.
29 lines (26 loc) • 1.11 kB
text/typescript
import { FormEvent, ChangeEvent } from 'react';
interface RegisteredFieldProps {
name: string;
value?: string | number | readonly string[] | undefined;
onChange: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => void;
}
interface FileInputProps {
name: string;
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
}
/**
* Hook personalizado para manejo de formularios controlados.
* @template T - Tipo de los valores del formulario.
* @param initialValues - Valores iniciales del formulario.
* @param onSubmitCallback - Función a ejecutar al enviar el formulario.
* @returns Métodos y valores para manejar el formulario.
*/
declare function useFormLite<T extends Record<string, any>>(initialValues: T, onSubmitCallback: (values: T) => void): {
values: T;
handleSubmit: (event: FormEvent<HTMLFormElement>) => void;
resetForm: () => void;
register: (fieldName: string) => RegisteredFieldProps;
registerFile: (fieldName: string) => FileInputProps;
getEmptyFields: () => Record<string, string>;
};
export { useFormLite };