Guest User

Untitled

a guest
Aug 1st, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. import React from 'react';
  2. import InputItems from '../InputItems';
  3. import Header from '../Header';
  4. import Footer from '../Footer';
  5. import './login.css';
  6.  
  7. class Login extends React.Component {
  8. state = {
  9. userName: '',
  10. password: '',
  11. };
  12.  
  13. onChange = (e) => {
  14. const { name, value } = e.target;
  15. this.setState({
  16. [name]: value,
  17. });
  18. }
  19.  
  20. onSubmit = () => {
  21. const { userName, password } = this.state;
  22. const payload = {
  23. userName,
  24. password,
  25. };
  26. const request = {
  27. method: 'POST',
  28. body: JSON.stringify(payload),
  29. };
  30. fetch('/login', request)
  31. .then((res) => {
  32. const code = res.status;
  33. res.json().then((reply) => {
  34. if (code !== 200) {
  35. window.alert(reply.message);
  36. } else {
  37. window.localStorage.setItem('token', reply.token);
  38. this.props.history.push('/');
  39. }
  40. });
  41. });
  42. }
  43.  
  44. render() {
  45. const { userName, password } = this.state;
  46. const { onChange, onSubmit } = this;
  47. const token = window.localStorage.getItem('token');
  48. if (token === null) {
  49. return (
  50. <div className="App-main">
  51. <Header history={this.props.history} />
  52. <div className="login">
  53. <div className="login-border">
  54. <div className="login-login">
  55. LOGIN
  56. </div>
  57. <div className="login-inputItems">
  58. <InputItems
  59. name="userName"
  60. value={userName}
  61. title="User name"
  62. type="text"
  63. onChange={onChange}
  64. />
  65. <InputItems
  66. name="password"
  67. value={password}
  68. title="Password"
  69. type="password"
  70. onChange={onChange}
  71. />
  72. <button type="button" onClick={onSubmit} className="login-submit">Submit</button>
  73. </div>
  74. </div>
  75. </div>
  76. <Footer />
  77. </div>
  78. );
  79. }
  80. return (
  81. <div className="App-main">
  82. <Header history={this.props.history} />
  83. <div className="login">
  84. <div className="login-border">
  85. You are already logged in!! <div className="login-goBack" onClick={() => { this.props.history.push('/'); }}>Go back</div>
  86. </div>
  87. </div>
  88. <Footer />
  89. </div>
  90. );
  91. }
  92. }
  93.  
  94. export default Login;
Add Comment
Please, Sign In to add comment