Advertisement
rotman_yan

LoginPage

Dec 28th, 2018
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {Component} from 'react'
  2. import {bindActionCreators} from 'redux'
  3. import {connect} from 'react-redux'
  4. import {Link} from 'react-router-dom'
  5.  
  6. import styles from './loginPage.css'
  7. import {login} from 'data/login/actions'
  8. import Logo from 'assets/svg/mm-logo.svg'
  9. import User from 'assets/svg/user.svg'
  10. import Key from 'assets/svg/key.svg'
  11.  
  12. import {CSSTransition} from 'react-transition-group';
  13.  
  14. const mapDispatchToProps = dispatch => (
  15.     {
  16.         loginActions: bindActionCreators({
  17.             login
  18.         }, dispatch)
  19.     }
  20. )
  21. const mapStateToProps = ({localization: {content}, login}) => ({content, login})
  22.  
  23. @connect(mapStateToProps, mapDispatchToProps)
  24. export default class LoginPage extends Component {
  25.     handleLogin = e => {
  26.         e.preventDefault()
  27.         const {
  28.             loginActions: {login}
  29.         } = this.props
  30.  
  31.         const formValues = {
  32.             username: e.target.username.value,
  33.             password: e.target.password.value
  34.         }
  35.         const params = new URLSearchParams(this.props.location.search)
  36.         const tenant = params.get('tenant')
  37.         localStorage.setItem('tenant', tenant)
  38.         login(formValues)
  39.     }
  40.  
  41.  
  42.  
  43.     render() {
  44.         const {content, login:{ error,  message }} = this.props
  45.  
  46.         return (
  47.             <div className={styles.wrapper}>
  48.                 <CSSTransition
  49.                     in={true}
  50.                     appear={true}
  51.                     timeout={2000}
  52.                     classNames={{
  53.                         appear: styles['fadeInUp-appear'],
  54.                         appearActive: styles['fadeInUp-appear-active']
  55.                     }}
  56.                 >
  57.                     <form
  58.                         className={styles.form}
  59.                         onSubmit={this.handleLogin}
  60.                         autoComplete='off'
  61.                     >
  62.                         <div className={styles.blur}></div>
  63.                         <div className={styles.logoWrap}>
  64.                             <Logo className={styles.logo}/>
  65.                         </div>
  66.                         <span className={styles.heading}>
  67.                             {/* {content.login.login_page} */}
  68.                             Login
  69.                         </span>
  70.                         <div className={styles.fieldWrap}>
  71.                             <User className={styles.fieldIcon}/>
  72.                             <input
  73.  
  74.                                 style={ error ? {border: 'solid 1px red'} : {borderBottom: 'solid 1px #fff'}}
  75.                                 className={styles.input}
  76.                                 name='username'
  77.                                 placeholder={/*content.login.username*/'email'}
  78.                                 type='text'
  79.                             />
  80.                         </div>
  81.                         <div className={styles.fieldWrap}>
  82.                             <Key className={styles.fieldIcon}/>
  83.                             <input
  84.                                 style={ error ? {border: 'solid 1px red'} : {borderBottom: 'solid 1px #fff'}}
  85.                                 className={styles.input}
  86.                                 name='password'
  87.                                 placeholder={/*content.login.password*/'password'}
  88.                                 type='password'
  89.                             />
  90.                         </div>
  91.                         <div className={styles.forgotWrap}>
  92.                             <Link
  93.                                 className={styles.forgotLink}
  94.                                 to='/login'
  95.                             >
  96.                                 Forgot your password?
  97.                             </Link>
  98.                         </div>
  99.                         <button className={styles.button}>{content.login.login}</button>
  100.                     </form>
  101.                 </CSSTransition>
  102.             </div>
  103.         )
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement