Guest User

Untitled

a guest
Dec 23rd, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. import React, { Component } from 'react';
  2.  
  3. import { connect } from 'react-redux';
  4. import { loginUser } from '../../actions/authActions';
  5.  
  6. import './LoginForm.css';
  7.  
  8. class LoginForm extends Component {
  9.  
  10. state = {
  11. user_name: '',
  12. password: '',
  13. validation: false,
  14. errorMessage: ''
  15. }
  16.  
  17. onChangeHandler = (e) => {
  18. this.setState({ [e.target.name]: e.target.value })
  19. };
  20.  
  21. onSubmitHandler = (e) => {
  22. e.preventDefault();
  23. const { user_name, password } = this.state
  24. const token = localStorage.usertoken
  25.  
  26. if(user_name && password) {
  27. this.setState({validation: true}, () => {
  28. const loggedUser = {
  29. user_name: user_name,
  30. password: password
  31. }
  32.  
  33. this.setState({
  34. user_name: '',
  35. password: '',
  36. })
  37. this.props.loginUser(loggedUser);
  38. })
  39. if (token) {
  40. this.props.history.push('/')
  41. }
  42. } else {
  43. if (!user_name) {
  44. this.setState({validation: false, errorMessage: 'Please enter your username'})
  45. }
  46. if (!password) {
  47. this.setState({validation: false, errorMessage: 'Please enter your password'})
  48. }
  49. }
  50. }
  51.  
  52. render() {
  53. const { user_name, password, validation } = this.state;
  54.  
  55. return (
  56. <div className='formContainer'>
  57. {!validation && <div className="errorBox">
  58. <p>{this.state.errorMessage}</p>
  59. </div>}
  60. <div className='form'>
  61. <form className='bookForm' onSubmit={this.onSubmitHandler.bind(this)}>
  62. <div className='inputs'>
  63. <input
  64. type='text'
  65. name='user_name'
  66. placeholder='Username'
  67. onChange={this.onChangeHandler}
  68. value={user_name}/>
  69. <input
  70. type='password'
  71. name='password'
  72. placeholder='Password'
  73. onChange={this.onChangeHandler}
  74. value={password}/>
  75. </div>
  76. <div className='buttonSpace'>
  77. <button>Login</button>
  78. </div>
  79. </form>
  80. </div>
  81. </div>
  82. )
  83. }
  84. }
  85.  
  86. const mapStateToProps = (state) => ({
  87. user: state.auth
  88. });
  89.  
  90. export default connect(mapStateToProps, { loginUser })(LoginForm);
Add Comment
Please, Sign In to add comment