frontend/smart-hut/src/views/Login.js

101 lines
2.9 KiB
JavaScript
Raw Normal View History

import React, {Component} from 'react';
import {Button, Form, Grid, Header, Image, Message, Icon, Checkbox, Input} from 'semantic-ui-react';
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: ""},
};
}
handleLogin = (e) => {
2020-03-02 15:59:32 +00:00
e.preventDefault();
const params = {
"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,
}).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"}});
}
}).catch(err => {
console.log(err);
2020-03-02 15:59:32 +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'/>
Go Home
2020-03-04 17:49:56 +00:00
</Button>
<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}
/>
<Form.Input
control={Input}
2020-03-02 15:59:32 +00:00
type="text"
icon='user'
2020-03-02 15:59:32 +00:00
name="user"
iconPosition='left'
2020-03-02 15:59:32 +00:00
placeholder='Username or E-mail'
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>
)
}
}