Advertisement
Guest User

Untitled

a guest
Apr 5th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. import React, { Fragment, Component } from "react";
  2.  
  3. const INITIAL_STATE = {
  4. username: "",
  5. email: "",
  6. password: "",
  7. error: ""
  8. };
  9.  
  10. class SignUpPage extends Component {
  11. constructor(props) {
  12. super(props);
  13.  
  14. this.state = INITIAL_STATE;
  15. this.onSubmit = this.onSubmit.bind(this);
  16. this.onChange = this.onChange.bind(this);
  17. }
  18.  
  19. onSubmit = event => {
  20. event.preventDefault();
  21. };
  22.  
  23. onChange = event => {
  24. this.setState({
  25. [event.target.name]: event.target.value
  26. });
  27. };
  28.  
  29. render() {
  30. const isInvalid =
  31. this.state.email === "" ||
  32. this.state.password === "" ||
  33. this.state.username === "";
  34.  
  35. return (
  36. <Fragment>
  37. <h1 className="title has-text-dark">Sign Up</h1>
  38. <form onSubmit={this.onSubmit}>
  39. <div className="field">
  40. <div className="label">Username</div>
  41. <p className="control">
  42. <input
  43. name="username"
  44. type="text"
  45. className="input"
  46. value={this.state.username}
  47. onChange={this.onChange}
  48. />
  49. </p>
  50. </div>
  51.  
  52. <div className="field">
  53. <div className="label">E-mail</div>
  54. <p className="control">
  55. <input
  56. name="email"
  57. type="email"
  58. className="input"
  59. value={this.state.email}
  60. onChange={this.onChange}
  61. />
  62. </p>
  63. </div>
  64.  
  65. <div className="field">
  66. <div className="label">Password</div>
  67. <p className="control">
  68. <input
  69. name="password"
  70. type="password"
  71. className="input"
  72. value={this.state.password}
  73. onChange={this.onChange}
  74. />
  75. </p>
  76. </div>
  77.  
  78. <div className="field">
  79. <p className="help is-danger">{this.state.error.message}</p>
  80. </div>
  81.  
  82. <div className="field">
  83. <div className="control">
  84. <button
  85. type="submit"
  86. className="button is-link"
  87. disabled={isInvalid}
  88. >
  89. Create User
  90. </button>
  91. </div>
  92. </div>
  93. </form>
  94. </Fragment>
  95. );
  96. }
  97. }
  98.  
  99. export default SignUpPage;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement