44 lines
1.2 KiB
JavaScript
Raw Normal View History

import { createSlice } from "@reduxjs/toolkit";
import { login } from "./authThunk";
const authSlice = createSlice({
name: "authSlice",
initialState: {
userId: null,
name: null,
roles: [],
token: null,
},
reducers: {
logout(state) {
state.userId = null;
state.name = null;
state.token = null;
state.roles = [];
localStorage.removeItem("userId");
localStorage.removeItem("name");
localStorage.removeItem("roles");
localStorage.removeItem("token");
},
},
extraReducers: (builder) => {
builder.addCase(login.fulfilled, (state, action) => {
const payload = action.payload;
state.userId = payload.userId;
state.name = payload.name;
state.roles = payload.roles;
state.token = payload.token;
localStorage.setItem("userId", payload.userId);
localStorage.setItem("name", payload.name);
localStorage.setItem("roles", JSON.stringify(payload.roles));
localStorage.setItem("token", action.payload.token);
});
},
});
export const { logout } = authSlice.actions;
export const selectUserRole = (state) => state.auth.roles;
export default authSlice.reducer;