2020-02-27 09:42:13 +00:00
|
|
|
import React, {Component} from 'react';
|
2020-03-04 15:12:58 +00:00
|
|
|
import {Button, Form, Grid, Header, Image, Message, Icon, Checkbox, Input} from 'semantic-ui-react';
|
2020-02-27 09:42:13 +00:00
|
|
|
|
|
|
|
export default class Login extends Component {
|
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
|
|
|
this.state = {
|
2020-03-02 15:59:32 +00:00
|
|
|
user: "",
|
|
|
|
password : "",
|
|
|
|
fireRedirect: false,
|
2020-03-04 20:24:18 +00:00
|
|
|
error : { state : false,
|
|
|
|
message: ""},
|
2020-02-27 09:42:13 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
handleLogin = (e) => {
|
2020-03-02 15:59:32 +00:00
|
|
|
|
|
|
|
e.preventDefault();
|
|
|
|
const params = {
|
2020-03-04 15:12:58 +00:00
|
|
|
"usernameOrEmail": this.state.user,
|
|
|
|
"password": this.state.password,
|
2020-03-02 15:59:32 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
this.props.auth({
|
|
|
|
user: this.state.user,
|
|
|
|
params : params,
|
2020-03-04 15:12:58 +00:00
|
|
|
}).then(res => {
|
2020-03-04 17:49:56 +00:00
|
|
|
if (res.status === "Errore") {
|
2020-03-04 20:24:18 +00:00
|
|
|
this.setState({error: { state: true,
|
|
|
|
message: "Errore"}});
|
2020-03-04 15:12:58 +00:00
|
|
|
}
|
|
|
|
}).catch(err => {
|
|
|
|
console.log(err);
|
2020-03-02 15:59:32 +00:00
|
|
|
});
|
2020-02-27 09:42:13 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
onChangeHandler = (event) => {
|
|
|
|
let nam = event.target.name;
|
|
|
|
let val = event.target.value;
|
|
|
|
this.setState({[nam]: val});
|
|
|
|
};
|
|
|
|
|
|
|
|
toggle = () => this.setState((prevState) => ({ rememberme: !prevState.rememberme }));
|
|
|
|
|
|
|
|
render() {
|
|
|
|
return (
|
|
|
|
<React.Fragment>
|
|
|
|
<Button
|
|
|
|
circular
|
|
|
|
icon="right arrow"
|
|
|
|
style={{margin: "2em"}}
|
|
|
|
href="/"
|
|
|
|
>
|
|
|
|
<Icon name='arrow alternate circle left'/>
|
2020-03-04 17:49:56 +00:00
|
|
|
Go Home
|
|
|
|
</Button>
|
2020-02-27 09:42:13 +00:00
|
|
|
<Grid textAlign='center' style={{height: '70vh'}} verticalAlign='middle'>
|
|
|
|
<Grid.Column style={{maxWidth: 450}}>
|
|
|
|
<Header as='h2' color='blue' textAlign='center'>
|
|
|
|
<Image src='img/logo.png'/> Log-in to SmartHut
|
|
|
|
</Header>
|
2020-03-04 17:49:56 +00:00
|
|
|
<Form size='large' style={{marginTop : "2em"}} error={this.state.error.state}>
|
|
|
|
<Message
|
|
|
|
error
|
|
|
|
header='Login Error'
|
|
|
|
content= {this.state.error.message}
|
|
|
|
/>
|
2020-02-27 09:42:13 +00:00
|
|
|
<Form.Input
|
|
|
|
control={Input}
|
2020-03-02 15:59:32 +00:00
|
|
|
type="text"
|
2020-02-27 09:42:13 +00:00
|
|
|
icon='user'
|
2020-03-02 15:59:32 +00:00
|
|
|
name="user"
|
2020-02-27 09:42:13 +00:00
|
|
|
iconPosition='left'
|
2020-03-02 15:59:32 +00:00
|
|
|
placeholder='Username or E-mail'
|
2020-02-27 09:42:13 +00:00
|
|
|
onChange={this.onChangeHandler}
|
|
|
|
/>
|
|
|
|
<Form.Input
|
|
|
|
icon='lock'
|
|
|
|
iconPosition='left'
|
|
|
|
placeholder='Password'
|
|
|
|
name="password"
|
|
|
|
type='password'
|
|
|
|
onChange={this.onChangeHandler}
|
|
|
|
/>
|
|
|
|
<Checkbox type="checkbox" name="rememberme" onClick={this.toggle} label='Remember me' style={{margin: "1.5em 0", float : "left"}}/>
|
|
|
|
|
|
|
|
<Button color='blue' fluid size='large' onClick={this.handleLogin}>
|
|
|
|
Login
|
|
|
|
</Button>
|
|
|
|
</Form>
|
|
|
|
<Message>
|
|
|
|
<p><a href="/forgot-password">Forgot Password?</a></p>
|
|
|
|
<p>New to us? <a href='/signup'> Sign Up</a></p>
|
|
|
|
</Message>
|
|
|
|
</Grid.Column>
|
|
|
|
</Grid>
|
|
|
|
</React.Fragment>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|