Skip to content

Commit 072b654

Browse files
committed
[ADD] Added validation for login page
1 parent c585cab commit 072b654

File tree

1 file changed

+44
-7
lines changed
  • carmanagement_client/src/Components

1 file changed

+44
-7
lines changed

carmanagement_client/src/Components/login.js

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { Component } from "react";
22
import { Route, withRouter, useHistory } from 'react-router-dom';
33
import { Link } from 'react-router-dom';
44
import axios from "axios";
5-
5+
import swal from "sweetalert";
66
import "../Components/Styles/login.scss";
77
import Home from "../Components/home"
88

@@ -14,6 +14,10 @@ class Login extends Component {
1414
formValue: {
1515
username: "",
1616
password: "",
17+
},
18+
formError: {
19+
username: false,
20+
password: false,
1721
}
1822
}
1923

@@ -28,12 +32,37 @@ class Login extends Component {
2832
...this.state.formValue,
2933
[name]: value,
3034

35+
},
36+
formError: {
37+
...this.state.formError,
38+
[name]: false,
39+
3140
}
3241
})
3342
}
3443

3544
handleSubmit = () => {
36-
console.log(this.state.formValue)
45+
let formError = {};
46+
let formData = this.state.formValue;
47+
let isValid = true;
48+
Object.keys(formData).forEach(key => {
49+
if (!formData[key]) {
50+
isValid = false;
51+
formError = {
52+
...formError,
53+
[key]: true
54+
}
55+
}
56+
})
57+
if (!isValid) {
58+
this.setState({
59+
formError: {
60+
...this.state.formError,
61+
...formError
62+
}
63+
})
64+
return;
65+
}
3766

3867
axios.post('/core/api/token/', {
3968
...this.state.formValue
@@ -43,6 +72,8 @@ class Login extends Component {
4372
localStorage.setItem('auth', response.data.access);
4473
this.props.history.push("/")
4574
}
75+
}).catch(error => {
76+
swal("", "User not found", "error");
4677
})
4778
}
4879

@@ -60,11 +91,17 @@ class Login extends Component {
6091
</div>
6192
<div className="card-body">
6293
<form className="login-form ml-4 mb-4 mr-4 mt-2">
63-
<label>Username</label>
64-
<input defaultValue="" className="" type="text" onChange={e => this.handleOnChange(e)} name="username" value={username} />
65-
<label className="mt-3">Password</label>
66-
<input defaultValue="" className="" type="password" onChange={e => this.handleOnChange(e)} name="password" value={password} />
67-
<input className="mt-5 btn btn-primary btn-submit btn-block" value="Submit" onClick={e => this.handleSubmit(e)} type="button" />
94+
<div>
95+
<label>Username</label>
96+
<input className="mb-2" type="text" onChange={e => this.handleOnChange(e)} name="username" value={username} />
97+
<span className="text-danger">{this.state.formError.username && "Please enter your username"}</span>
98+
</div>
99+
<div>
100+
<label className="mt-3">Password</label>
101+
<input className="mb-2" type="password" onChange={e => this.handleOnChange(e)} name="password" value={password} />
102+
<span className="text-danger">{this.state.formError.password && "Please enter your password"}</span>
103+
</div>
104+
<input className="mt-4 btn btn-primary btn-submit btn-block" value="Submit" onClick={e => this.handleSubmit(e)} type="button" />
68105

69106
</form>
70107
<p className="ml-4">Don't have an account?<Link className="ml-1" to={"/register"}>Sign Up</Link></p>

0 commit comments

Comments
 (0)