Advertisement
Guest User

Untitled

a guest
May 10th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. // ----------------------- not use mapDispatchToProps -----------------------------
  2. //var onSubmit = (event) => {
  3. // event.preventDefault()
  4. // var email = event.target.elements[0].value
  5. // var password = event.target.elements[1].value
  6. // // const path = `/repos/${userName}/${repo}`
  7. // store.dispatch(action.requestLogin({username:email,password:password}))
  8. // // store.dispatch(action.receiveLogin({user{username:email,password:password,objectId:1,sessionToken:"asdfg"}}))
  9. // }
  10.  
  11. // ----------------------- use mapDispatchToProps -----------------------------
  12.  
  13. const mapDispatchToProps = (dispatch) => {
  14. return {
  15. onSubmit: (event) => {
  16. event.preventDefault()
  17. var email = event.target.elements[0].value
  18. var password = event.target.elements[1].value
  19. dispatch(action.requestLogin({username:email,password:password}))
  20. }
  21. }
  22. }
  23.  
  24. const mapStateToProps = state => ({
  25. // onSubmit: onSubmit,
  26. error: state.login.error
  27. });
  28.  
  29. var LoginPage = ({ onSubmit,error }) => {
  30. return (
  31. `<div className="row">
  32. <div className="col-md-12">
  33. <LoginFormComponent className="account-form text-center" title="Log in to Portal" error={error !== null ? error : ""} onSubmit={onSubmit}/>
  34. </div>
  35. </div>`
  36. )
  37. }
  38.  
  39. export default connect(mapStateToProps,mapDispatchToProps)(LoginPage)
  40.  
  41. //-----------------------------and this is the reducer -------------------------------------
  42. export default function login(state = {
  43. logedAt: null,
  44. isLogging: false,
  45. error: null,
  46. data: {},
  47. }, action) {
  48. switch (action.type) {
  49. case types.LOGIN_REQUEST:
  50. return update(state, {
  51. isLogging: { $set: true },
  52. error: { $set: null }
  53. });
  54. case types.LOGIN_SUCCESS:
  55. return update(state, {
  56. data: { $set: action.body },
  57. isLogging: { $set: false },
  58. logedAt: { $set: action.logedAt },
  59. });
  60. case types.LOGIN_FAILURE:
  61. return update(state, {
  62. logedAt: { $set: null },
  63. error: { $set: action.error },
  64. });
  65. default:
  66. return state;
  67. }
  68. }
  69.  
  70. //-----------------------------and the middleware -------------------------------------
  71. export function login({dispatch, getState}){
  72. return next => action => {
  73. return callLogin().then(
  74. response => dispatch(Object.assign({},{
  75. body: response,
  76. logedAt: Date.now(),
  77. type: LOGIN_SUCCESS,
  78. isFetching: false,
  79. isAuthenticated: true,
  80. // callLogin: callLogin,
  81. })),
  82. error => dispatch(Object.assign({} ,{
  83. error: error.response.text,
  84. type: LOGIN_FAILURE,
  85. isFetching: false,
  86. isAuthenticated: false,
  87. // callLogin: callLogin,
  88. }))
  89. );
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement