Skip to content

Commit d5c24a6

Browse files
committed
Error handling
1 parent d4497e0 commit d5c24a6

File tree

3 files changed

+70
-31
lines changed

3 files changed

+70
-31
lines changed

package-lock.json

+2-19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/pages/LoginPage/LoginPage.js

+32-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import { Container, Grid, Hidden, TextField } from "@material-ui/core";
1+
import {
2+
Container,
3+
Grid,
4+
Hidden,
5+
TextField,
6+
Snackbar,
7+
} from "@material-ui/core";
8+
import { Alert } from "@material-ui/lab";
29
import React, { useState } from "react";
310
import axios from "axios";
411
import "./LoginPage.css";
@@ -9,11 +16,15 @@ const LoginPage = () => {
916
const [email, setEmail] = useState("");
1017
const [pass, setPass] = useState("");
1118
const [type, setType] = useState("user");
19+
const [error, setError] = useState(false);
1220

1321
const history = useHistory();
1422

1523
const Submit = async (e) => {
1624
e.preventDefault();
25+
if (email === "" || pass === "" || type === "") {
26+
return 0;
27+
}
1728
axios({
1829
method: "post",
1930
url: "https://cod-ed.herokuapp.com/user/login",
@@ -22,12 +33,17 @@ const LoginPage = () => {
2233
password: pass,
2334
type: type,
2435
},
25-
}).then((data) => {
26-
console.log(data);
27-
localStorage.setItem("authToken", data.data.token);
28-
localStorage.setItem("userType", type);
29-
history.push("/dashboard");
30-
});
36+
})
37+
.then((data) => {
38+
console.log(data);
39+
localStorage.setItem("authToken", data.data.token);
40+
localStorage.setItem("userType", type);
41+
history.push("/dashboard");
42+
})
43+
.catch((err) => {
44+
console.log(err);
45+
setError(true);
46+
});
3147
};
3248
return (
3349
<div className="login-page">
@@ -140,6 +156,15 @@ const LoginPage = () => {
140156
</Container>
141157
</Grid>
142158
</Grid>
159+
<Snackbar
160+
autoHideDuration={3000}
161+
open={error}
162+
onClose={() => setError(false)}
163+
>
164+
<Alert variant="filled" severity="error">
165+
Email or Password is incorrect
166+
</Alert>
167+
</Snackbar>
143168
</div>
144169
);
145170
};

src/pages/SignupPage/SignupPage.js

+36-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import { Container, Grid, Hidden, TextField } from "@material-ui/core";
1+
import {
2+
Container,
3+
Grid,
4+
Hidden,
5+
TextField,
6+
Snackbar,
7+
} from "@material-ui/core";
8+
import { Alert } from "@material-ui/lab";
29
import React, { useState } from "react";
310
import axios from "axios";
411
import { useHistory } from "react-router";
@@ -10,11 +17,21 @@ const SignupPage = () => {
1017
const [phone, setPhone] = useState("");
1118
const [pass, setPass] = useState("");
1219
const [type, setType] = useState("user");
20+
const [error, setError] = useState(false);
1321

1422
const history = useHistory();
1523

1624
const Submit = async (e) => {
1725
e.preventDefault();
26+
if (
27+
name === "" ||
28+
email === "" ||
29+
pass === "" ||
30+
phone === "" ||
31+
type === ""
32+
) {
33+
return 0;
34+
}
1835
axios({
1936
method: "post",
2037
url: "https://cod-ed.herokuapp.com/user/register",
@@ -25,10 +42,15 @@ const SignupPage = () => {
2542
number: phone,
2643
type: type,
2744
},
28-
}).then((data) => {
29-
console.log(data);
30-
history.push("/login");
31-
});
45+
})
46+
.then((data) => {
47+
console.log(data);
48+
history.push("/login");
49+
})
50+
.catch((err) => {
51+
console.log(err);
52+
setError(true);
53+
});
3254
};
3355

3456
return (
@@ -161,6 +183,15 @@ const SignupPage = () => {
161183
</Container>
162184
</Grid>
163185
</Grid>
186+
<Snackbar
187+
autoHideDuration={3000}
188+
open={error}
189+
onClose={() => setError(false)}
190+
>
191+
<Alert variant="filled" severity="error">
192+
Email already exists
193+
</Alert>
194+
</Snackbar>
164195
</div>
165196
);
166197
};

0 commit comments

Comments
 (0)