Guest User

Untitled

a guest
Apr 17th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. import * as React from 'react';
  2. import { RegisterState } from '../types/Register.d';
  3. import { RegisterProps } from '../types/Redux.d';
  4. import { register } from '../actions/userActions';
  5. import { connect } from 'react-redux';
  6. import '../styles/Register-Login.css';
  7. import { GoogleSignIn } from '../GoogleSignIn/index';
  8. import { showRegisterWindow } from '../actions/appActions';
  9. import { Store } from '../types/Redux';
  10. class Register extends React.Component<RegisterProps, RegisterState> {
  11. constructor(props: RegisterProps) {
  12. super(props);
  13. this.state = {
  14. firstName: '',
  15. lastName: '',
  16. email: '',
  17. password: '',
  18. username: ''
  19. };
  20. }
  21.  
  22. public handleFormChange(e: React.FormEvent<HTMLInputElement>): void {
  23. var { name, value } = e.currentTarget;
  24. this.setState({
  25. [name]: value
  26. // tslint:disable-next-line
  27. } as any);
  28. }
  29.  
  30. public handleSubmit(e: React.FormEvent<HTMLButtonElement>): void {
  31. e.preventDefault();
  32. const { firstName, lastName, username, email, password } = this.state;
  33. this.props.register(firstName, lastName, username, email, password);
  34. }
  35.  
  36. windowVisibility = (e: React.MouseEvent<HTMLButtonElement>): void => {
  37. e.preventDefault();
  38. this.props.showRegisterWindow();
  39. };
  40.  
  41. render() {
  42. return (
  43. <div className="registerPopupScreen">
  44. <form className="register-form">
  45. <br />
  46. <div className="logo-login_register">project match</div>
  47. <button
  48. className="login-register-exit-window-btn"
  49. onClick={e => this.windowVisibility(e)}
  50. >
  51. X
  52. </button>
  53. <br />
  54.  
  55. <GoogleSignIn />
  56.  
  57. <hr className="horizontalDivider" />
  58.  
  59. <label className="form-label">First Name</label>
  60. <input
  61. type="text"
  62. placeholder="First Name"
  63. name="firstName"
  64. required={true}
  65. className="nameDiv"
  66. onChange={e => this.handleFormChange(e)}
  67. />
  68.  
  69. <label className="form-label">Last Name</label>
  70. <input
  71. type="text"
  72. placeholder="Last Name"
  73. name="lastName"
  74. required={true}
  75. className="nameDiv"
  76. onChange={e => this.handleFormChange(e)}
  77. />
  78.  
  79. <br />
  80.  
  81. <label className="form-label">Username</label>
  82. <input
  83. type="text"
  84. placeholder="Username"
  85. name="username"
  86. required={true}
  87. className="usernameDiv"
  88. onChange={e => this.handleFormChange(e)}
  89. />
  90.  
  91. <br />
  92.  
  93. <label className="form-label">Your Email</label>
  94. <input
  95. type="email"
  96. placeholder="Email Address"
  97. name="email"
  98. required={true}
  99. className="emailDiv"
  100. onChange={e => this.handleFormChange(e)}
  101. />
  102.  
  103. <br />
  104.  
  105. <label className="form-label">Password</label>
  106. <input
  107. id="pasword"
  108. type="password"
  109. placeholder="Password"
  110. name="password"
  111. required={true}
  112. className="passwordDiv"
  113. onChange={e => this.handleFormChange(e)}
  114. />
  115.  
  116. <br />
  117.  
  118. <button
  119. onClick={e => this.handleSubmit(e)}
  120. type="submit"
  121. className="signUpBtn"
  122. name="registerBtn"
  123. >
  124. Sign Up For Free
  125. </button>
  126. </form>
  127. </div>
  128. );
  129. }
  130. }
  131.  
  132. function mapStateToProps(state: Store) {
  133. return {
  134. visibleRegisterWindow: state.registerLoginWindow.visibleRegisterWindow
  135. };
  136. }
  137. export default connect(mapStateToProps, { register, showRegisterWindow })(
  138. Register
  139. );
Add Comment
Please, Sign In to add comment