Advertisement
Guest User

Untitled

a guest
Feb 8th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { connect } from 'react-redux';
  4. import axios from 'axios';
  5. import JsonTable from 'react-json-table';
  6.  
  7. //Redux functions
  8. import { setUsername, setPassword, setId, setEmail, setFirstname, setLastname, setPosts } from '../actions/userActions';
  9.  
  10. @connect(({user}) => {
  11. return {
  12. user: user.user,
  13. }
  14. })
  15. class RegistrationForm extends React.Component{
  16.  
  17. constructor(){
  18. super();
  19. }
  20.  
  21. handleFormSubmit(){
  22. if(this.refs.password.value === this.refs.password2.value){
  23.  
  24. this.props.dispatch((dispatch) => {
  25. dispatch(setUsername(this.refs.username.value));
  26. dispatch(setPassword(this.refs.password.value));
  27. dispatch(setEmail(this.refs.email.value));
  28. dispatch(setFirstname(this.refs.firstname.value));
  29. dispatch(setLastname(this.refs.lastname.value));
  30. });
  31. console.log(this.props.user);
  32. //axios.put('/user', this.props.user);
  33. }else{
  34. console.log('Please repeat your password!');
  35. }
  36. }
  37.  
  38. componentWillMount(){
  39.  
  40. }
  41.  
  42. render(){
  43. return(
  44. <form onSubmit={this.handleFormSubmit.bind(this)}>
  45. <h2>Registration</h2>
  46. <label>
  47. <input type="text" defaultValue="brotasco" size="200px" placeholder="Username" ref="username" required/>
  48. </label><br/>
  49. <label>
  50. <input type="password" defaultValue="brotasco" size="200px" placeholder="Password" ref="password" required/>
  51. </label><br/>
  52. <label>
  53. <input type="password" defaultValue="brotasco" size="200px" placeholder="Repeat Password" ref="password2" required/>
  54. </label><br/>
  55. <label>
  56. <input type="text" size="200px" defaultValue="Mario" placeholder="Firstname" ref="firstname" required/>
  57. </label><br/>
  58. <label>
  59. <input type="text" size="200px" defaultValue="Maeder" placeholder="Lastname" ref="lastname" required/>
  60. </label><br/>
  61. <label>
  62. <input type="email" size="200px" defaultValue="brotasco@gmail.com" placeholder="Email" ref="email" required/>
  63. </label><br/>
  64. <input type="submit" value="Submit"/>
  65. </form>
  66. );
  67. }
  68.  
  69. }
  70.  
  71. export default RegistrationForm;
  72.  
  73. export default function reducer(state={
  74. user: {
  75. userid: null,
  76. username: null,
  77. password: null,
  78. email: null,
  79. firstname: null,
  80. lastname: null,
  81. posts: null,
  82. }
  83. }, action){
  84. switch(action.type) {
  85. case 'SET_USERNAME':{
  86. return {
  87. ...state,
  88. user: {...state.user, username: action.payload}
  89. }
  90. }
  91. case 'SET_PASSWORD':{
  92. return{
  93. ...state,
  94. user: {...state.user, password: action.payload}
  95. }
  96. }
  97. case 'SET_ID':{
  98. return{
  99. ...state,
  100. user: {...state.user, userid: action.payload}
  101. }
  102. }
  103. case 'SET_EMAIL':{
  104. return{
  105. ...state,
  106. user: {...state.user, email: action.payload}
  107. }
  108. }
  109. case 'SET_FIRSTNAME':{
  110. return{
  111. ...state,
  112. user: {...state.user, firstname: action.payload}
  113. }
  114. }
  115. case 'SET_LASTNAME':{
  116. return{
  117. ...state,
  118. user: {...state.user, lastname: action.payload}
  119. }
  120. }
  121. case 'SET_POSTS':{
  122. return{
  123. ...state,
  124. user: {...state.user, posts: action.payload}
  125. }
  126. }
  127. case 'SET_USER':{
  128. return { ...state, user: action.payload}
  129. }
  130. }
  131.  
  132. return state
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement