import React, { useEffect, useState } from 'react'; import Link from 'next/link'; import { useTranslation } from 'react-i18next'; import { useForm, useWatch } from 'react-hook-form'; import { useRouter } from 'next/router'; import axios from 'axios'; import Field from '../../common/Field'; import ArrowBigRight from '../../icons/ArrowBigRight'; import RoundedButton from '../../common/RoundedButton'; import RoundedLink from '../../common/RoundedLink'; import { LoginForm } from '../../../model/components/login'; import { CustomResponse } from '../../../model/common'; import { User } from '../../../model/user'; const inscriptionOpen = true; const regExp = new RegExp( /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/, 'i', ); const Login: React.FC = () => { const { register, handleSubmit, formState: { errors }, setError, control, } = useForm(); const email = useWatch({ control, name: 'email' }); const { t } = useTranslation(); const [valid, setValid] = useState(false); const [invalid, setInvalid] = useState(false); const router = useRouter(); useEffect(() => { if (email && email.length) { if (!regExp.test(email)) { setInvalid(true); setValid(false); } else { setValid(true); setInvalid(false); } } else { setValid(false); setInvalid(false); } }, [email]); const onSubmit = async (data: LoginForm): Promise => { const response = await axios.post>('/api/login', data); if (!response.data?.ok) { setError('password', { message: t(response.data?.error) }); } else { router.push('/'); } }; return (

Entrar

Si ya estás registrado introduce tu email y contraseña, si no, selecciona nuevo usuario.

} />

He olvidado mi contraseña

{inscriptionOpen ? ( } size="tiny" className="signUpClick white" /> ) : (

Registro Cerrado

)}
); }; export default Login;