Advertisement
Guest User

Untitled

a guest
Aug 14th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ```
  2.  
  3. import React, { Component } from 'react';
  4.  
  5. import './App.css';
  6.  
  7.  
  8.  
  9. const EMAIL_REGEXP = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  10.  
  11.  
  12.  
  13. class App extends Component {
  14.  
  15.  
  16.  
  17. state = {
  18.  
  19. fields: {
  20.  
  21. email: '',
  22.  
  23. password: ''
  24.  
  25. },
  26.  
  27. errors: []
  28.  
  29. }
  30.  
  31.  
  32.  
  33. handleInput = (event) => {
  34.  
  35. console.log(event.target.value);
  36.  
  37. let { email, password } = this.state.fields
  38.  
  39.  
  40.  
  41. if (event.target.name === 'email') {
  42.  
  43. email = event.target.value
  44.  
  45. }
  46.  
  47. else if (event.target.name === 'password') {
  48.  
  49. password = event.target.value
  50.  
  51. }
  52.  
  53.  
  54.  
  55. const fields = { email, password };
  56.  
  57. this.setState({ fields: fields });
  58.  
  59. }
  60.  
  61.  
  62.  
  63. handleSubmit = (event) => {
  64.  
  65. const { email, password } = this.state.fields
  66.  
  67. const errors = []
  68.  
  69. event.preventDefault();
  70.  
  71.  
  72.  
  73. // password validation
  74.  
  75. if (!password || password.length < 8) {
  76.  
  77. errors.push('Insufiecient password')
  78.  
  79. }
  80.  
  81. // email validation
  82.  
  83. if (EMAIL_REGEXP.test(email)) {
  84.  
  85. errors.push('Bad email')
  86.  
  87. }
  88.  
  89.  
  90.  
  91. // email validation
  92.  
  93. this.setState({ errors })
  94.  
  95. }
  96.  
  97.  
  98.  
  99.  
  100.  
  101. render() {
  102.  
  103. const { email, password } = this.state.fields;
  104.  
  105. const { errors } = this.state
  106.  
  107.  
  108.  
  109. return (
  110.  
  111. <div className="App">
  112.  
  113. <form onSubmit={this.handleSubmit}>
  114.  
  115. <p>{errors.join(' ')}</p>
  116.  
  117. <div className="form-group">
  118.  
  119. <input type="text" name="email" value={email} onChange={this.handleInput}></input>
  120.  
  121. <span className="prompt"></span>
  122.  
  123. </div>
  124.  
  125. <div className="form-group">
  126.  
  127. <input type="password" name="password" value={password} onChange={this.handleInput}></input>
  128.  
  129. <span className="prompt"></span>
  130.  
  131. </div>
  132.  
  133.  
  134.  
  135. <button type="submit">Submit</button>
  136.  
  137. </form>
  138.  
  139. </div>
  140.  
  141. );
  142.  
  143. }
  144.  
  145. }
  146.  
  147.  
  148.  
  149. export default App;
  150.  
  151.  
  152.  
  153. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement