Skip to content

Commit de67eea

Browse files
signin converted into smart component and connected with backend-server using fetch api
1 parent 07b0ab2 commit de67eea

2 files changed

Lines changed: 75 additions & 37 deletions

File tree

  • Section 24 SmartBrain Front-End/facerecognitionbrain/src/Components/Signin
  • Section 26 SmartBrain Back-End Server/smart-brain-api
Lines changed: 74 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,84 @@
1-
import React from 'react';
1+
import React, { Component } from 'react';
2+
class Signin extends Component {
23

3-
const Signin = ({onRouteChange}) => {
4+
constructor(props){
5+
super(props);
6+
this.state = {
7+
signInEmail:'',
8+
signInPassword: ''
9+
}
10+
}
11+
12+
onEmailChange = (event) => {
13+
this.setState({signInEmail: event.target.value});
14+
}
15+
16+
onPasswordChange = (event) => {
17+
this.setState({signInPassword: event.target.value});
18+
}
19+
20+
onSubmitSignIn = () => {
21+
fetch("http://localhost:3001/signin", {
22+
method : 'post',
23+
headers: {'Content-Type' : 'application/json'},
24+
body : JSON.stringify({
25+
email: this.state.signInEmail,
26+
password: this.state.signInPassword
27+
})
28+
})
29+
.then(response => response.json())
30+
.then(data => {
31+
if(data === 'success'){
32+
this.props.onRouteChange('home');
33+
}
34+
})
35+
}
36+
37+
render(){
38+
const {onRouteChange} = this.props;
439
return (
5-
<article className="br3 ba b--black-10 mv4 w-100 w-50-m w-25-l mw6 shadow-5 center">
6-
<main className="pa4 black-80">
7-
<div className="measure">
8-
<fieldset id="sign_up" className="ba b--transparent ph0 mh0">
9-
<legend className="f1 fw6 ph0 mh0">Sign In</legend>
10-
<div className="mt3">
11-
<label className="db fw6 lh-copy f6" htmlFor="email-address">Email</label>
12-
<input
13-
className="pa2 input-reset ba bg-transparent hover-bg-black hover-white w-100"
14-
type="email"
15-
name="email-address"
16-
id="email-address"
17-
/>
18-
</div>
19-
<div className="mv3">
20-
<label className="db fw6 lh-copy f6" htmlFor="password">Password</label>
21-
<input
22-
className="b pa2 input-reset ba bg-transparent hover-bg-black hover-white w-100"
23-
type="password"
24-
name="password"
25-
id="password"
26-
/>
27-
</div>
28-
</fieldset>
29-
<div className="">
40+
<article className="br3 ba b--black-10 mv4 w-100 w-50-m w-25-l mw6 shadow-5 center">
41+
<main className="pa4 black-80">
42+
<div className="measure">
43+
<fieldset id="sign_up" className="ba b--transparent ph0 mh0">
44+
<legend className="f1 fw6 ph0 mh0">Sign In</legend>
45+
<div className="mt3">
46+
<label className="db fw6 lh-copy f6" htmlFor="email-address">Email</label>
3047
<input
31-
onClick={() => onRouteChange('home')}
32-
className="b ph3 pv2 input-reset ba b--black bg-transparent grow pointer f6 dib"
33-
type="submit"
34-
value="Sign in"
48+
onChange={this.onEmailChange}
49+
className="pa2 input-reset ba bg-transparent hover-bg-black hover-white w-100"
50+
type="email"
51+
name="email-address"
52+
id="email-address"
3553
/>
36-
<div className="lh-copy mt3">
37-
<p onClick={() => onRouteChange('register')} className="f6 link dim black db pointer">Register</p>
38-
</div>
54+
</div>
55+
<div className="mv3">
56+
<label className="db fw6 lh-copy f6" htmlFor="password">Password</label>
57+
<input
58+
onChange={this.onPasswordChange}
59+
className="b pa2 input-reset ba bg-transparent hover-bg-black hover-white w-100"
60+
type="password"
61+
name="password"
62+
id="password"
63+
/>
64+
</div>
65+
</fieldset>
66+
<div className="">
67+
<input
68+
onClick={this.onSubmitSignIn}
69+
className="b ph3 pv2 input-reset ba b--black bg-transparent grow pointer f6 dib"
70+
type="submit"
71+
value="Sign in"
72+
/>
73+
<div className="lh-copy mt3">
74+
<p onClick={() => onRouteChange('register')} className="f6 link dim black db pointer">Register</p>
3975
</div>
4076
</div>
41-
</main>
42-
</article>
77+
</div>
78+
</main>
79+
</article>
4380
)
81+
}
4482
}
4583

4684
export default Signin;

Section 26 SmartBrain Back-End Server/smart-brain-api/server.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ app.post('/signin', (req,res) => {
4444
if(req.body.email === database.users[0].email
4545
&& req.body.password === database.users[0].password
4646
){
47-
res.json("Success");
47+
res.json('success');
4848
}
4949
else{
5050
res.status(400).json('error logging in');

0 commit comments

Comments
 (0)