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.

user.js 1.0KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {createReducer} from '@reduxjs/toolkit'
  2. import { setToken, setRefreshToken, authLoaded, logOut, setUsername, logInSuccess, setConnectionError } from "../actions/index";
  3. export default createReducer({
  4. token: null,
  5. refreshToken: null,
  6. username: "",
  7. logInSuccess: "",
  8. connectionError: "",
  9. isAuthLoadedFromStorage: false
  10. }, builder => {
  11. builder
  12. .addCase(setToken, (state, { payload }) => {
  13. state.token = payload
  14. })
  15. .addCase(setRefreshToken, (state, { payload }) => {
  16. state.refreshToken = payload
  17. })
  18. .addCase(authLoaded, (state) => {
  19. state.isAuthLoadedFromStorage = true
  20. })
  21. .addCase(logOut, (state) => {
  22. state.username = null;
  23. state.token = null;
  24. state.refreshToken = null;
  25. })
  26. .addCase(setUsername, (state, { payload }) => {
  27. state.username = payload
  28. })
  29. .addCase(logInSuccess, (state, { payload }) => {
  30. state.logInSuccess = payload
  31. })
  32. .addCase(setConnectionError, (state) => {
  33. state.connectionError = payload
  34. })
  35. })