CoffeeJoo_Panel_kafeDar/redux/slices/authSlice.js

37 lines
901 B
JavaScript

import { createSlice } from "@reduxjs/toolkit";
const getInitialState = () => {
if (typeof window === "undefined") {
return { token: null, isAuthenticated: false };
}
const token = localStorage.getItem("token");
return {
token: token || null,
isAuthenticated: !!token,
};
};
const authSlice = createSlice({
name: "auth",
initialState: getInitialState(),
reducers: {
setToken(state, action) {
state.token = action.payload;
state.isAuthenticated = true;
if (typeof window !== "undefined") {
localStorage.setItem("token", action.payload);
}
},
clearToken(state) {
state.token = null;
state.isAuthenticated = false;
if (typeof window !== "undefined") {
localStorage.removeItem("token");
}
},
},
});
export const { setToken, clearToken } = authSlice.actions;
export default authSlice.reducer;