in microservices/adp_ui/src/components/Login.js [37:152]
function Login() {
// React States
const [errorMessages, setErrorMessages] = useState({});
const [isSubmitted, setIsSubmitted] = useState(false);
// To sign with the other email accounts
const handleSubmit = async (event) => {
//Prevent page reload
event.preventDefault();
var { uname, pass } = document.forms[0];
try {
const user = await signInWithEmailAndPassword(
auth,
uname.value,
pass.value
);
console.log(user);
if (user) {
setIsSubmitted(true);
console.log("User signedin success");
localStorage.setItem('login', true);
localStorage.setItem('user', user.user.email);
window.location = "/";
}
} catch (error) {
console.log(error.message);
setErrorMessages({ name: "uname", message: error.message });
}
};
// Generate JSX code for error message login
const renderErrorMessage = (name) =>
name === errorMessages.name && (
<div className="error">{errorMessages.message}</div>
);
// JSX code for login form
const renderForm = (
<div>
<div className="form">
<form onSubmit={handleSubmit}>
<div className="input-container">
<Row>
<h5 style={{fontWeight:'bolder'}}>Sign In</h5>
</Row>
<Row>
<Col className="col-4" style={{marginTop: '0.6em'}}>
<label>Email </label>
</Col>
<Col className="col-8">
<input type="text" name="uname" style={{width:'100%'}} placeholder="Please enter email" className="loginInput" required />
{renderErrorMessage("uname")}
</Col>
</Row>
</div>
<div className="input-container">
<Row>
<Col className="col-4"style={{marginTop: '0.6em'}}>
<label>Password </label>
</Col>
<Col className="col-8">
<input type="password" name="pass" style={{width:'100%'}} placeholder="Please enter password" className="loginInput" required />
{renderErrorMessage("pass")}
</Col>
</Row>
</div>
<div className="input-container">
<Row>
<Col className="col-4">
</Col>
<Col className="col-8">
<input type="submit" style={{width:'100%'}} value="Sign In"/>
</Col>
</Row>
</div>
</form>
</div>
</div>
);
return (
<div className="logindiv">
<div className="login-form">
<Image src={imgFile} width='260px' height='70px' style={{display: 'block',
margin: '0 auto'}}/>
<h4 className="loginTitle">Automated Document Processing</h4> <br/>
{isSubmitted ? <Redirect to="/" /> : renderForm}
</div>
<div className="register-container">
<FcGoogle className="googleImg" />
<Button variant="success" onClick={signInWithGoogle} className="signInGoogle">
Sign in with Google</Button>
</div>
</div>
);
}