選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

loginReducer.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import createReducer from '../../utils/createReducer';
  2. import {
  3. CLEAR_LOGIN_USER_ERROR,
  4. LOGIN_USER_ERROR,
  5. LOGIN_USER_SUCCESS,
  6. RESET_LOGIN_STATE,
  7. UPDATE_USER_JWT_TOKEN,
  8. } from '../../actions/login/loginActionConstants';
  9. const initialState = {
  10. email: '',
  11. token: {
  12. JwtRefreshToken: '',
  13. JwtToken: '',
  14. },
  15. errorMessage: '',
  16. };
  17. export default createReducer(
  18. {
  19. [LOGIN_USER_SUCCESS]: setUser,
  20. [UPDATE_USER_JWT_TOKEN]: setUserJwtToken,
  21. [RESET_LOGIN_STATE]: resetLoginState,
  22. [LOGIN_USER_ERROR]: setError,
  23. [CLEAR_LOGIN_USER_ERROR]: clearLoginErrors,
  24. },
  25. initialState,
  26. );
  27. function setUser(state, action) {
  28. return {
  29. ...state,
  30. token: {
  31. ...state.token,
  32. JwtToken: action.payload.jwt,
  33. JwtRefreshToken: action.payload.refreshToken
  34. },
  35. };
  36. }
  37. function setUserJwtToken(state, action) {
  38. return {
  39. ...state,
  40. token: {
  41. ...state.token,
  42. JwtToken: action.payload,
  43. },
  44. };
  45. }
  46. function setError(state, action) {
  47. return {
  48. ...state,
  49. errorMessage: action.payload,
  50. };
  51. }
  52. function resetLoginState() {
  53. return initialState;
  54. }
  55. function clearLoginErrors(state) {
  56. return {
  57. ...state,
  58. errorMessage: '',
  59. };
  60. }