Untitled
unknown
plain_text
2 years ago
2.0 kB
5
Indexable
import React, { useState, useEffect, ChangeEvent, FormEvent } from 'react'; import { useNavigate } from 'react-router-dom'; function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [isButtonDisabled, setIsButtonDisabled] = useState(true); const navigate = useNavigate(); const handleChangeEmail = (event: ChangeEvent<HTMLInputElement>) => { const { value } = event.target; setEmail(value); }; const handleChangePassword = (event: ChangeEvent<HTMLInputElement>) => { const { value } = event.target; setPassword(value); }; useEffect(() => { // Verificar se o email possui um @ e a senha tem pelo menos 6 caracteres const emailPattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/; const isEmailValid = emailPattern.test(email); const isPasswordValid = password.length > 6; if (isEmailValid && isPasswordValid) { setIsButtonDisabled(false); } else { setIsButtonDisabled(true); } }, [email, password]); const handleSubmit = (event: FormEvent) => { event.preventDefault(); // salvar email no localStorage na chave 'user' no formato { email: email-da-pessoa } localStorage.setItem('user', JSON.stringify({ email })); // redirecionar para a rota /meals navigate('/meals'); }; return ( <section> <div> <form onSubmit={ handleSubmit }> <input type="text" value={ email } onChange={ handleChangeEmail } data-testid="email-input" /> <input value={ password } onChange={ handleChangePassword } type="password" data-testid="password-input" /> <button data-testid="login-submit-btn" disabled={ isButtonDisabled } > Enter </button> </form> </div> </section> ); } export default Login;
Editor is loading...
Leave a Comment