import { yupResolver } from '@hookform/resolvers/yup'; import _ from '@lodash'; import Button from '@mui/material/Button'; import TextField from '@mui/material/TextField'; import { forwardRef, memo, useState } from 'react'; import { Controller, useForm } from 'react-hook-form'; import { withTranslation } from 'react-i18next'; import * as yup from 'yup'; const defaultValues = { name: '', email: '', message: '', }; const StyledTextField = forwardRef((props, ref) => ( theme.palette.background.paper, borderRadius: '10px', }, }} {...props} ref={ref} /> )); function FeedbackForm({ t }) { const [isFormSubmitted, setIsFormSubmitted] = useState(false); const schema = yup.object().shape({ name: yup.string().required(t('feedback_required')), email: yup.string().email(t('feedback_email_error')).required(t('feedback_required')), message: yup .string() .required(t('feedback_required')) .min(5, t('min_length_error', { length: 5 })) .max(255, t('max_length_error', { length: 255 })), }); const { control, formState, handleSubmit, setError } = useForm({ mode: 'onChange', defaultValues, resolver: yupResolver(schema), }); const { isValid, dirtyFields, errors } = formState; function onSubmit() { // setError('root', 'error'); setIsFormSubmitted(true); } return (
{!isFormSubmitted && (
{t('feedback_title')} ( )} /> ( )} /> ( theme.palette.background.paper, borderRadius: '10px', }, }} // eslint-disable-next-line react/jsx-no-duplicate-props inputProps={{ sx: { padding: '16.5px 14px', }, }} /> )} />
{errors.root?.message && (

{errors.root?.message}

)}
)}
); } export default withTranslation('homePage')(memo(FeedbackForm));