import { Box, Button, Container, Grid, IconButton, InputAdornment, TextField, Typography, } from '@mui/material'; import { useFormik } from 'formik'; import { useTranslation } from 'next-i18next'; import Link from 'next/link'; import { useState } from 'react'; import { FORGOT_PASSWORD_PAGE, LOGIN_PAGE } from '../../../constants/pages'; import { createUser } from '../../../requests/accountRequests'; import { registerSchema } from '../../../schemas/registerSchema'; import ErrorMessageComponent from '../../mui/ErrorMessageComponent'; const RegisterForm = () => { const { t } = useTranslation('forms', 'register'); const [showPassword, setShowPassword] = useState(false); const handleClickShowPassword = () => setShowPassword(!showPassword); const handleMouseDownPassword = () => setShowPassword(!showPassword); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const handleClickShowConfirmPassword = () => setShowConfirmPassword(!showConfirmPassword); const handleMouseDownConfirmPassword = () => setShowConfirmPassword(!showConfirmPassword); const [error, setError] = useState({ hasError: false, errorMessage: '' }); const submitHandler = async (values) => { try { const result = await createUser( values.fullName, values.username, values.email, values.password ); console.log(result); } catch (error) { setError({ hasError: true, errorMessage: error.message }); } }; const formik = useFormik({ initialValues: { fullName: '', username: '', email: '', password: '', confirmPassword: '', }, validationSchema: registerSchema, onSubmit: submitHandler, validateOnBlur: true, enableReinitialize: true, }); return ( {t('register:Title')} {error.hasError && } ), }} /> ), }} /> {t('register:ForgotPassword')} {t('register:HaveAccount')} ); }; export default RegisterForm;