Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. import React from 'react';
  2. import { withStyles } from '@material-ui/core/styles';
  3. import Button from '@material-ui/core/Button';
  4. import CssBaseline from '@material-ui/core/CssBaseline';
  5. import TextField from '@material-ui/core/TextField';
  6. import axios from 'axios';
  7. import Card from '@material-ui/core/Card';
  8.  
  9. class logIn extends React.Component {
  10. constructor() {
  11. super();
  12. this.state = {
  13. cardnumber: '',
  14. pin: '',
  15. servercardnumber: {
  16. message: ''
  17. }
  18. };
  19. this.handleEvent = this.handleEvent.bind(this);
  20. {
  21. /* check if can be removed */
  22. }
  23. this.handleSubmit = this.handleSubmit.bind(this);
  24. }
  25. handleEvent = e => {
  26. this.setState({ [e.target.name]: e.target.value });
  27. };
  28. handleSubmit = async e => {
  29. e.preventDefault();
  30. // get our form data out of state
  31. const { cardnumber, pin } = this.state;
  32. const data = { cardnumber, pin };
  33. const url = '/api/login';
  34. const serverResponse = await fetch(url, {
  35. method: 'POST',
  36. headers: {
  37. Accept: 'application/json',
  38. 'Content-Type': 'application/json',
  39. 'Access-Control-Allow-Origin': '*',
  40. 'Access-Control-Allow-Credentials': true
  41. },
  42. body: JSON.stringify(data)
  43. });
  44. const json = await serverResponse.json();
  45. console.log(json);
  46.  
  47. this.setState(
  48. prevState => {
  49. return {
  50. servercardnumber: json.cardnumber
  51. };
  52. },
  53. () => {
  54. console.log(this.state.cardnumber);
  55. }
  56. );
  57. };
  58.  
  59. render() {
  60. const { cardnumber, pin, servercardnumber } = this.state;
  61. return (
  62. <React.Fragment>
  63. <Card>{!servercardnumber ? <Card> Server says no</Card> : null}</Card>
  64. {console.log('server says:')}
  65. {console.log(servercardnumber)}
  66. <CssBaseline /> {/*https://material-ui.com/style/css-baseline */}
  67. <h1> Log in</h1>
  68. <form onSubmit={this.handleSubmit} method="POST" action="/api/formdata">
  69. <br />
  70. {/* Bytt ut med CSS block elementer eller noe slikt, bytt name pƄ form fields til Ƅ hentes via JS */}
  71. <TextField
  72. required
  73. id="standard-required"
  74. label="Card number"
  75. className="tekstfelt"
  76. margin="normal"
  77. defaultValue={cardnumber}
  78. name="cardnumber"
  79. onInput={e => {
  80. e.target.value = Math.max(0, parseInt(e.target.value))
  81. .toString()
  82. .slice(0, 12);
  83. }}
  84. onChange={e => this.handleEvent(e)}
  85. />
  86. <br />
  87. <TextField
  88. required
  89. id="standard-required"
  90. label="PIN code"
  91. className="tekstfelt"
  92. margin="normal"
  93. type="password"
  94. defaultValue={pin}
  95. name="pin"
  96. onInput={e => {
  97. e.target.value = Math.max(0, parseInt(e.target.value))
  98. .toString()
  99. .slice(0, 4);
  100. }}
  101. onChange={e => this.handleEvent(e)}
  102. />
  103. <br />
  104. <br />
  105. <Button type="submit" variant="contained" color="primary" className="test">
  106. <div className="test">Log in</div>
  107. </Button>
  108. </form>
  109. <p>
  110. Cardnumber: {this.state.cardnumber} <br />
  111. pin-code: {this.state.pin} <br />
  112. </p>
  113. </React.Fragment>
  114. );
  115. }
  116. }
  117. export default logIn;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement