Advertisement
Guest User

Untitled

a guest
May 3rd, 2019
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import "./Login.scss";
  3. import "semantic-ui-css/semantic.min.css";
  4. import {Form, Grid, Header, Image, Segment} from "semantic-ui-react";
  5. import logo from '../../assets/images/icnodent_communication.png';
  6. import background from '../../assets/images/background.jpg';
  7. import {doLoginUser} from "../../api";
  8. import {LS_TOKEN_KEY} from "../../constants/Constants";
  9.  
  10. export class Login extends React.Component {
  11.  
  12.     state = { email: '', password: '', loading: false};
  13.  
  14.     handleChange = (e, { name, value }) => this.setState({ [name]: value });
  15.  
  16.     doLoginHandle = async () => {
  17.         this.setState({loading: true});
  18.         const dataPost = {
  19.             username: this.state.email,
  20.             password: this.state.password
  21.         };
  22.         try {
  23.             this.setState({loading: false});
  24.             const responseLogin = await doLoginUser(dataPost);
  25.             localStorage.setItem(LS_TOKEN_KEY, responseLogin.token);
  26.         } catch (e) {
  27.             this.setState({loading: false});
  28.             console.log("catch");
  29.         }
  30.     };
  31.  
  32.     render() {
  33.         return (
  34.         <div id="login" style={{ backgroundImage: `url(${background})` }}>
  35.             <Grid textAlign="center" verticalAlign="middle">
  36.                 <Grid.Column>
  37.                     <Form size="large" onSubmit={this.doLoginHandle} loading={this.state.loading}>
  38.                         <Segment>
  39.                             <Header as="h2" textAlign="center">
  40.                                 <Image src={logo}/>
  41.                             </Header>
  42.                             <Form.Input
  43.                                 fluid
  44.                                 name="email"
  45.                                 icon="user"
  46.                                 iconPosition="left"
  47.                                 placeholder="Email address"
  48.                                 onChange={this.handleChange}
  49.                             />
  50.                             <Form.Input
  51.                                 fluid
  52.                                 name="password"
  53.                                 icon="lock"
  54.                                 iconPosition="left"
  55.                                 placeholder="Password"
  56.                                 type="password"
  57.                                 onChange={this.handleChange}
  58.                             />
  59.                             <Form.Button fluid size="large">
  60.                                 Login
  61.                             </Form.Button>
  62.                         </Segment>
  63.                     </Form>
  64.                 </Grid.Column>
  65.             </Grid>
  66.         </div>
  67.         );
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement