accuntSlice.ts 1000 B

123456789101112131415161718192021222324252627282930313233
  1. import { AccountInfo } from "../../services/auth/types";
  2. import { createSlice, PayloadAction } from "@reduxjs/toolkit";
  3. const accountSlice = createSlice({
  4. name: "account",
  5. initialState: {
  6. account: null,
  7. },
  8. reducers: {
  9. accountLogin: (state, action: PayloadAction<AccountInfo>) => {
  10. console.log("data in slice: ", action.payload);
  11. localStorage.setItem("token", action.payload.accessToken);
  12. localStorage.setItem("refreshToken", action.payload.refreshToken);
  13. localStorage.setItem("accountInfo", JSON.stringify(action.payload));
  14. return {
  15. ...state,
  16. account: action.payload,
  17. };
  18. },
  19. accountLogout: (state) => {
  20. localStorage.removeItem("token");
  21. localStorage.removeItem("refreshToken");
  22. localStorage.removeItem("accountInfo");
  23. return {
  24. ...state,
  25. account: null,
  26. };
  27. },
  28. },
  29. });
  30. export const { accountLogin, accountLogout } = accountSlice.actions;
  31. export default accountSlice.reducer;