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;