import { useState } from 'react'; export function useForm(initialValues: T) { const [values, setValues] = useState(initialValues); const [errors, setErrors] = useState>>({}); const handleChange = (name: keyof T, value: any) => { setValues(prev => ({ ...prev, [name]: value })); }; const validate = (validationRules: Partial string | undefined>>) => { const newErrors: Partial> = {}; Object.keys(validationRules).forEach((key) => { const error = validationRules[key as keyof T]?.(values[key as keyof T]); if (error) { newErrors[key as keyof T] = error; } }); setErrors(newErrors); return Object.keys(newErrors).length === 0; }; return { values, errors, handleChange, validate }; }