Guest User

Untitled

a guest
Feb 5th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. import React, { Component } from 'react'
  2. import { connect } from 'react-redux'
  3. import { FormControl, FormGroup } from 'react-bootstrap'
  4. import { Link } from 'react-router-dom'
  5.  
  6. import { login } from '../Actions'
  7.  
  8. class SignIn extends Component {
  9. constructor(props) {
  10. super(props)
  11.  
  12. this.state = {
  13. username: '',
  14. password: '',
  15. submitted: false,
  16. token: ''
  17. }
  18.  
  19. this.handleChange = this.handleChange.bind(this)
  20. this.handleSubmit = this.handleSubmit.bind(this)
  21. }
  22.  
  23. handleChange(e) {
  24. const { name, value } = e.target
  25. this.setState({ [name]: value })
  26. }
  27.  
  28. handleSubmit(e) {
  29. e.preventDefault()
  30. const { username, password } = this.state
  31. const { dispatch } = this.props
  32.  
  33. this.setState({ submitted: true })
  34. if (username && password) dispatch(login(username, password))
  35. }
  36.  
  37. render() {
  38. const { username, password, submitted } = this.state
  39. const { loggingIn } = this.props
  40.  
  41. return (
  42. <div className="container" id="signin_container">
  43. <h2>Sign In</h2>
  44. <form>
  45. <FormGroup>
  46. <FormControl
  47. className={'form-group' + (submitted && !username ? ' has-error' : '')}
  48. onChange={this.handleChange}
  49. placeholder="Username"
  50. name="username"
  51. value={username}
  52. />
  53. {submitted && !username && (<div className="help-block">Username is required</div>)}
  54. <FormControl
  55. className={'form-group' + (submitted && !password ? ' has-error' : '')}
  56. onChange={this.handleChange}
  57. placeholder="Password"
  58. name="password"
  59. value={password}
  60. type='password'
  61. />
  62. {submitted && !password && (<div className="help-block">Password is required</div>)}
  63. </FormGroup>
  64. <div className="buttons_layout">
  65. <button onClick={this.handleSubmit}>Sign In</button>
  66. <Link to="/passwordReset">Forgot Password</Link>
  67. </div>
  68. {loggingIn && (
  69. <img
  70. alt="loading"
  71. id="loading"
  72. src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA=="
  73. />
  74. )}
  75. </form>
  76. </div>
  77. )
  78. }
  79. }
  80.  
  81. const mapStateToProps = state => {
  82. const { loggingIn } = state.authentication
  83. return {
  84. loggingIn
  85. }
  86. }
  87.  
  88. const connectedSignIn = connect(mapStateToProps)(SignIn)
  89. export { connectedSignIn as SignIn }
Add Comment
Please, Sign In to add comment