Guest User

Untitled

a guest
Dec 11th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. import React, {Component} from 'react';
  2. import {Link} from "react-router-dom";
  3.  
  4. class RegWindow extends Component {
  5. state = {
  6. login: '',
  7. email: '',
  8. password: '',
  9. passwordConfirm:'',
  10. loginValid: false,
  11. emailValid: false,
  12. passwordValid: false,
  13. passwordConfirmValid: false,
  14. submitDisable:true
  15. };
  16.  
  17. onChangeHandler = (e)=> {
  18. this.setState({
  19. [e.target.name]: e.target.value
  20. })
  21. };
  22.  
  23. onSubmit = ()=>{
  24. console.log('submit')
  25. };
  26.  
  27. render(){
  28. let submitDisable = this.state.submitDisable;
  29.  
  30. return(
  31. <div className="reg-window">
  32. <Link to='/' className="homeLink"><strong>ReactStore</strong></Link>
  33. <div className='input-div'>
  34. <input name='login'
  35. className='input-reg' type='text' maxLength='15'
  36. required placeholder='Enter your login'
  37. onChange={e => this.onChangeHandler(e)}
  38. value={this.state.login}
  39. />
  40. </div>
  41. <div className='input-error'>This login already in use by another user!</div>
  42. <div className='input-error'>Invalid login!</div>
  43.  
  44. <div className='input-div'>
  45. <input name='email'
  46. className='input-reg' type='email' maxLength='20'
  47. placeholder='Enter your email'
  48. onChange={e => this.onChangeHandler(e)}
  49. value={this.state.email}
  50. />
  51. </div>
  52. <div className='input-error'>Invalid email!</div>
  53.  
  54. <div className='input-div'>
  55. <input name='password'
  56. className='input-reg' type='password' maxLength='15'
  57. placeholder='Enter your password'
  58. onChange={e => this.onChangeHandler(e)}
  59. value={this.state.password}
  60. />
  61. </div>
  62. <div className='input-error'>Invalid password!</div>
  63.  
  64. <div className='input-div'>
  65. <input name='passwordConfirm'
  66. className='input-reg' type='password' maxLength='15'
  67. placeholder='Enter your password again'
  68. onChange={e => this.onChangeHandler(e)}
  69. value={this.state.passwordConfirm}
  70. />
  71. </div>
  72. <div className='input-error'>Password mismatch!</div>
  73.  
  74. <button className='submit-btn'
  75. disabled={this.state.submitDisable}
  76. onClick={this.onSubmit}
  77. ><strong>Sign up!</strong></button>
  78. <div><Link to='/auth' className="reg-auth-link">I already have an account</Link></div>
  79. </div>
  80. );
  81. };
  82. }
  83.  
  84. export {RegWindow};
  85.  
  86. state = {
  87. login: '',
  88. loginValid: false };
  89.  
  90. loginValidate = (e)=>{
  91. let regExp = /^[A-Za-z]+[A-Za-z0-9]+$/;
  92. this.setState({
  93. [e.target.name]: e.target.value,
  94. loginValid: regExp.test(e.target.value)
  95. });
  96. };
  97.  
  98. onChange={e => this.loginValidate(e)}
Add Comment
Please, Sign In to add comment