Advertisement
Guest User

Untitled

a guest
Nov 11th, 2016
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. import React, { Component, PropTypes } from 'react';
  2.  
  3. class LoginPage extends Component {
  4. constructor() {
  5. super();
  6.  
  7. this.state = {
  8. name: '',
  9. password: '',
  10. rememberMe: false,
  11. };
  12.  
  13. this.onNameChange = this.onNameChange.bind(this);
  14. this.onPasswordChange = this.onPasswordChange.bind(this);
  15. this.onRememberMeChange = this.onRememberMeChange.bind(this);
  16. this.login = this.login.bind(this);
  17. }
  18.  
  19. onNameChange(e) {
  20. const name = e.target.value;
  21. this.setState({ name });
  22. }
  23.  
  24. onPasswordChange(e) {
  25. const password = e.target.value;
  26. this.setState({ password });
  27. }
  28.  
  29. onRememberMeChange() {
  30. const rememberMe = !this.state.rememberMe;
  31. this.setState({ rememberMe });
  32. }
  33.  
  34. login(e) {
  35. e.preventDefault();
  36. this
  37. .props
  38. .loginAsUser({ name: this.state.name, rememberMe: this.state.rememberMe });
  39. }
  40.  
  41. render() {
  42. return (
  43. <form className="col-sm-6 col-sm-offset-3">
  44. <div className="form-group">
  45. <label htmlFor="username">Name</label>
  46. <input
  47. type="text"
  48. className="form-control"
  49. placeholder="Name"
  50. id="username"
  51. value={this.state.name}
  52. onChange={this.onNameChange}
  53. />
  54. </div>
  55. <div className="form-group">
  56. <label htmlFor="password">Password</label>
  57. <input
  58. type="password"
  59. id="password"
  60. className="form-control"
  61. placeholder="Password"
  62. value={this.state.password}
  63. onChange={this.onPasswordChange}
  64. />
  65. </div>
  66. <div className="checkbox">
  67. <label htmlFor="rememberMe">
  68. <input
  69. type="checkbox"
  70. id="rememberMe"
  71. checked={this.state.rememberMe}
  72. onChange={this.onRememberMeChange}
  73. />
  74. Remember me on this device
  75. </label>
  76. </div>
  77. <button
  78. className="btn btn-primary"
  79. disabled={this.state.name.length === 0 || this.state.password.length === 0}
  80. onClick={this.login}
  81. >
  82. Sign In
  83. </button>
  84. </form>
  85. );
  86. }
  87. }
  88.  
  89. LoginPage.propTypes = {
  90. loginAsUser: PropTypes.func.isRequired,
  91. };
  92.  
  93. export default LoginPage;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement