/** * Пример использования валидации в форме */ 'use client'; import { useFormValidation } from '@/hooks/useFormValidation'; import { validateAircraft } from '@/lib/validation/client-validation'; import FormField from '../FormField'; import ValidatedForm from '../ValidatedForm'; export default function ValidatedAircraftForm({ onSave }: { onSave: (data: any) => Promise }) { const { values, errors, isSubmitting, canSubmit: _canSubmit, setValue, setFieldTouched, getFieldError, isFieldTouched, handleSubmit, } = useFormValidation({ schema: validateAircraft, onSubmit: onSave, initialValues: { registrationNumber: '', serialNumber: '', aircraftType: '', operator: '', status: 'Активен', }, }); return ( setValue('registrationNumber', e.target.value)} onBlur={() => setFieldTouched('registrationNumber')} style={{ width: '100%', padding: '10px', border: `1px solid ${getFieldError('registrationNumber') ? '#f44336' : '#ccc'}`, borderRadius: '4px', fontSize: '14px', }} placeholder="RA-12345" /> setValue('serialNumber', e.target.value)} onBlur={() => setFieldTouched('serialNumber')} style={{ width: '100%', padding: '10px', border: `1px solid ${getFieldError('serialNumber') ? '#f44336' : '#ccc'}`, borderRadius: '4px', fontSize: '14px', }} /> setValue('aircraftType', e.target.value)} onBlur={() => setFieldTouched('aircraftType')} style={{ width: '100%', padding: '10px', border: `1px solid ${getFieldError('aircraftType') ? '#f44336' : '#ccc'}`, borderRadius: '4px', fontSize: '14px', }} placeholder="Boeing 737-800" /> setValue('operator', e.target.value)} onBlur={() => setFieldTouched('operator')} style={{ width: '100%', padding: '10px', border: `1px solid ${getFieldError('operator') ? '#f44336' : '#ccc'}`, borderRadius: '4px', fontSize: '14px', }} placeholder="Аэрофлот" /> ); }