You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

loginReducer.js 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. GENERATE_TOKEN_SUCCESS,
  9. GENERATE_TOKEN_ERROR,
  10. } from '../../actions/login/loginActionConstants';
  11. const initialState = {
  12. email: '',
  13. token: {
  14. RefreshToken: '',
  15. JwtToken: '',
  16. },
  17. errorMessage: '',
  18. };
  19. export default createReducer(
  20. {
  21. [LOGIN_USER_SUCCESS]: setUser,
  22. [UPDATE_USER_JWT_TOKEN]: setUserJwtToken,
  23. [RESET_LOGIN_STATE]: resetLoginState,
  24. [LOGIN_USER_ERROR]: setError,
  25. [CLEAR_LOGIN_USER_ERROR]: clearLoginErrors,
  26. [GENERATE_TOKEN_SUCCESS]: generateToken,
  27. [GENERATE_TOKEN_ERROR]: generateTokenError,
  28. },
  29. initialState,
  30. );
  31. function setUser(state, action) {
  32. return {
  33. ...state,
  34. token: {
  35. ...state.token,
  36. JwtToken: action.payload.token,
  37. JwtRefreshToken: action.payload.refresh
  38. },
  39. };
  40. }
  41. function setUserJwtToken(state, action) {
  42. return {
  43. ...state,
  44. token: {
  45. ...state.token,
  46. JwtToken: action.payload,
  47. },
  48. };
  49. }
  50. function setError(state, action) {
  51. return {
  52. ...state,
  53. errorMessage: action.payload,
  54. };
  55. }
  56. function resetLoginState() {
  57. return initialState;
  58. }
  59. function clearLoginErrors(state) {
  60. return {
  61. ...state,
  62. errorMessage: '',
  63. };
  64. }
  65. function generateToken(state, action) {
  66. return {
  67. ...state,
  68. token: action.payload,
  69. };
  70. }
  71. function generateTokenError(state, action) {
  72. return {
  73. ...state,
  74. errorMessage: action.payload,
  75. };
  76. }