Guest User

Untitled

a guest
Jun 26th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. import React, { Component } from "react";
  2. import { connect } from "react-redux";
  3. import { loggedIn, signUp } from "../Actions";
  4. import Navigation from "./Navigation";
  5.  
  6. class LogIn extends Component {
  7. constructor(props) {
  8. super(props);
  9. this.state = {
  10. username: "",
  11. password: "",
  12. confirmPassword: "",
  13. newAccount: false
  14. };
  15. }
  16.  
  17. loginChangeHandler = event => {
  18. const { name, value } = event.target;
  19. this.setState({ [name]: value });
  20. };
  21.  
  22. loginAuth = event => {
  23. event.preventDefault();
  24. const username = this.state.username;
  25. const password = this.state.password;
  26.  
  27. if (password.length > 0 && username.length > 0) {
  28. return this.props.loggedIn(username, password);
  29. }
  30. return alert("Must include both a password and username");
  31. };
  32.  
  33. signUpAuth = event => {
  34. event.preventDefault();
  35. const username = this.state.username;
  36. const password = this.state.password;
  37. const confirmPassword = this.state.confirmPassword;
  38.  
  39. if (confirmPassword === password && username.length > 0) {
  40. return this.props.signUp(username, password);
  41. }
  42. return alert("Make sure to include a username and a matching password.");
  43. };
  44.  
  45. signUpToggle = event => {
  46. event.preventDefault();
  47. const active = this.state.newAccount;
  48. this.setState({ newAccount: !active });
  49. };
  50.  
  51. render() {
  52. return (
  53. <div className="HomePage">
  54. <Navigation />
  55. <div className="Login">
  56. <form style={this.state.newAccount ? { display: "none" } : null}>
  57. <div>Sign In</div>
  58. <br />
  59. {this.props.error ? (
  60. <h3 className="LogInError">Incorrect username/password</h3>
  61. ) : null}
  62. <br />
  63. <input
  64. type="text"
  65. placeholder="username"
  66. value={this.state.username}
  67. onChange={this.loginChangeHandler}
  68. name="username"
  69. required
  70. />
  71. <br />
  72. <br />
  73. <input
  74. type="password"
  75. placeholder="password"
  76. value={this.state.password}
  77. onChange={this.loginChangeHandler}
  78. name="password"
  79. required
  80. />
  81. <br />
  82. <br />
  83. <button onClick={this.loginAuth}>Login</button>
  84. <br />
  85. <br />
  86. <br />
  87. <p>
  88. Need an account?{" "}
  89. <a href="" onClick={this.signUpToggle}>
  90. Sign Up
  91. </a>
  92. </p>
  93. </form>
  94. <form style={this.state.newAccount ? null : { display: "none" }}>
  95. <div>Sign Up</div>
  96. <input
  97. type="text"
  98. placeholder="username"
  99. value={this.state.username}
  100. onChange={this.loginChangeHandler}
  101. name="username"
  102. required
  103. />
  104. <br />
  105. <br />
  106. <input
  107. type="password"
  108. placeholder="password"
  109. value={this.state.password}
  110. onChange={this.loginChangeHandler}
  111. name="password"
  112. required
  113. />
  114. <br />
  115. <br />
  116. <input
  117. type="password"
  118. placeholder="confirm password"
  119. value={this.state.confirmPassword}
  120. onChange={this.loginChangeHandler}
  121. name="confirmPassword"
  122. required
  123. />
  124. <br />
  125. <br />
  126. <button onClick={this.signUpAuth}>Sign Up</button>
  127. <br />
  128. <br />
  129. <br />
  130. <p>
  131. Want to Sign In?{" "}
  132. <a href="" onClick={this.signUpToggle}>
  133. LogIn
  134. </a>
  135. </p>
  136. </form>
  137. </div>
  138. </div>
  139. );
  140. }
  141. }
  142.  
  143. const mapStateToProps = state => {
  144. return {
  145. loggedIn: state.loggedIn,
  146. error: state.error,
  147. signedUp: state.signedUp
  148. };
  149. };
  150.  
  151. export default connect(mapStateToProps, { loggedIn, signUp })(LogIn);
Add Comment
Please, Sign In to add comment