import React, { useState } from 'react'; import { Button, Input, Label, Card, CardHeader, CardTitle, CardContent, CardFooter, Checkbox, } from 'xertica-ui/ui'; import { useTranslation } from 'react-i18next'; interface FormValues { fullName: string; email: string; notify: boolean; } interface FormErrors { fullName?: string; email?: string; } export function FormTemplate() { const { t } = useTranslation(); const [values, setValues] = useState({ fullName: '', email: '', notify: false }); const [errors, setErrors] = useState({}); const [submitted, setSubmitted] = useState(false); const validate = (v: FormValues): FormErrors => { const errs: FormErrors = {}; if (v.fullName.trim().length < 3) errs.fullName = t('formTemplate.errors.fullNameRequired'); if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v.email)) errs.email = t('formTemplate.errors.emailInvalid'); return errs; }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const errs = validate(values); setErrors(errs); if (Object.keys(errs).length === 0) { setSubmitted(true); console.log('Form submitted:', values); } }; const handleReset = () => { setValues({ fullName: '', email: '', notify: false }); setErrors({}); setSubmitted(false); }; return (
{t('formTemplate.title')}

{t('formTemplate.description')}

setValues(v => ({ ...v, fullName: e.target.value }))} /> {errors.fullName &&

{errors.fullName}

}
setValues(v => ({ ...v, email: e.target.value }))} /> {errors.email &&

{errors.email}

}
setValues(v => ({ ...v, notify: checked === true }))} />
{submitted && (

{t('formTemplate.successMessage')}

)}
); }