Advertisement
ahmadandika

Untitled

Aug 18th, 2019
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* eslint-disable no-restricted-syntax */
  2. /* eslint-disable guard-for-in */
  3. import React, { Component } from 'react';
  4. import { Link } from 'react-router-dom';
  5. import { connect } from 'react-redux';
  6. import { Field, reduxForm } from 'redux-form';
  7. import { loginUser } from '../../actions/auth.action';
  8. import { renderField, emailValid, required } from '../../components/Field';
  9. import PasswordField from '../../components/PasswordField';
  10. import ButtonLoader from '../../components/ButtonLoader';
  11.  
  12. class Masuk extends Component {
  13.   state = {};
  14.  
  15.   onSubmit = value => {
  16.     const { loginUser } = this.props;
  17.     const formData = new FormData();
  18.     for (const key in value) {
  19.       formData.append(key, value[key]);
  20.     }
  21.     loginUser(formData);
  22.   };
  23.  
  24.   render() {
  25.     const { handleSubmit, auth } = this.props;
  26.     return (
  27.       <div className="container-fluid login-container">
  28.         <div className="height-top-container" />
  29.         <div className="row">
  30.           <div className="col-12 d-flex flex-column align-items-center">
  31.             <h2>Masuk ke akunmu</h2>
  32.             <h5 className="text-center">
  33.               Ayo masuk ke akunmu untuk melihat produk keuangan lebih lengkap
  34.             </h5>
  35.             <form onSubmit={handleSubmit(this.onSubmit)}>
  36.               <Field
  37.                 name="email"
  38.                 type="email"
  39.                 component={renderField}
  40.                 placeholder="Email"
  41.                 validate={[required, emailValid]}
  42.               />
  43.               <Field
  44.                 name="password"
  45.                 type="password"
  46.                 component={PasswordField}
  47.                 placeholder="Password"
  48.                 validate={[required]}
  49.               />
  50.  
  51.               <div className="d-flex justify-content-center align-items-center mt-3 mb-3">
  52.                 <ButtonLoader
  53.                   type="submit"
  54.                   className="button-login-akun"
  55.                   loader={auth.isLoading}
  56.                 >
  57.                   Masuk
  58.                 </ButtonLoader>
  59.               </div>
  60.             </form>
  61.             <h6 className="link-daftar">
  62.               Belum punya akun?
  63.               <Link to="/akundaftar">
  64.                 <b className="daftar text-white ml-2">Daftar disini</b>
  65.               </Link>
  66.             </h6>
  67.             {auth.errorMessage && (
  68.               <div className="col-lg-12 mt-2 text-center">
  69.                 <div className="alert alert-danger" role="alert">
  70.                   {auth.errorMessage}
  71.                 </div>
  72.               </div>
  73.             )}
  74.           </div>
  75.         </div>
  76.       </div>
  77.     );
  78.   }
  79. }
  80.  
  81. const mapStateToProps = state => ({
  82.   auth: state.auth
  83. });
  84.  
  85. export default reduxForm({
  86.   form: 'loginForm' // a unique identifier for this form
  87. })(
  88.   connect(
  89.     mapStateToProps,
  90.     { loginUser }
  91.   )(Masuk)
  92. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement