benshepherd

Login.js

Apr 24th, 2019
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react'
  2. import { Link } from 'react-router-dom'
  3. import firebase from 'firebase'
  4. import { APIService } from '../../_services/api.service'
  5.  
  6. const endpoint = 'client/checkClientByEmail'
  7.  
  8. class Login extends React.Component {
  9.     state = {
  10.         email: '[email protected]',
  11.         password: 'mypassword',
  12.         formError: null,
  13.     }
  14.  
  15.     handleChange = (e) => {
  16.         const { name, value } = e.target
  17.         this.setState({ [name]: value })
  18.     }
  19.  
  20.     handleLogin = async(e) => {
  21.         e.preventDefault()
  22.  
  23.         console.log('handle login')
  24.         this.setState({formError: null})
  25.  
  26.         const {
  27.             email,
  28.             password,
  29.         } = this.state
  30.         const formData = {
  31.             email,
  32.             password,
  33.         }
  34.  
  35.         try {
  36.             let request = await APIService(endpoint, 'post', formData)
  37.  
  38.             if(request.status) {
  39.                 console.log('Login request - success', {request});
  40.  
  41.                 firebase
  42.                 .auth()
  43.                 .signInWithEmailAndPassword(email, password)
  44.                 .catch(err => {
  45.                     console.log('Firebase error - ', err)
  46.                     this.setState({formError: err.message})
  47.                 })
  48.             }
  49.         }
  50.         catch (e) {
  51.             console.log('Register request - error', {e});
  52.         }
  53.     }
  54.  
  55.     render() {
  56.         const {
  57.             email,
  58.             password,
  59.             formError,
  60.         } = this.state
  61.         const hasFormError = formError !== null && formError.length
  62.  
  63.         return (
  64.             <section id="LoginComponent">
  65.                 <div className="section-title">
  66.                     <h2>Login</h2>
  67.                 </div>
  68.                 <div className="row">
  69.                     <div className="col-12 col-md-4 offset-md-4">
  70.  
  71.                         {hasFormError ? (
  72.                             <div className="alert form-error register-error">
  73.                                 <p>{formError}</p>
  74.                             </div>
  75.                         ) : null}
  76.  
  77.                         <form id="HomepageLoginForm mb-3" onSubmit={this.handleLogin}>
  78.                             <div className="form-group email">
  79.                                 <label>Email</label>
  80.                                 <input type="text" name="email" className="form-control email" onChange={this.handleChange} value={email} />
  81.                             </div>
  82.                             <div className="form-group password">
  83.                                 <label>Password</label>
  84.                                 <input type="password" name="password" className="form-control username" onChange={this.handleChange} value={password} />
  85.                             </div>
  86.  
  87.                             <button type="submit" className="btn btn-login">Login</button>
  88.                             <Link className="btn btn-register" to="/register">Register</Link>
  89.                         </form>
  90.                     </div>
  91.                 </div>
  92.             </section>
  93.         )
  94.     }
  95. }
  96.  
  97. export default Login
Advertisement
Add Comment
Please, Sign In to add comment