Files
Fulfillment-Frontend/src/features/authSlice.ts
2024-03-03 07:23:41 +03:00

34 lines
886 B
TypeScript

import {createSlice, PayloadAction} from "@reduxjs/toolkit";
interface AuthState {
isAuthorized: boolean;
accessToken: string;
}
const initialState = (): AuthState => {
const localStorageState = localStorage.getItem("authState");
if (localStorageState !== null) {
return JSON.parse(localStorageState);
}
return {
accessToken: "",
isAuthorized: false
}
}
const authSlice = createSlice({
name: 'auth',
initialState,
reducers: {
login: (state, action: PayloadAction<{ accessToken: string }>) => {
state.accessToken = action.payload.accessToken;
state.isAuthorized = true;
},
logout: (state) => {
state.isAuthorized = false;
state.accessToken = '';
}
}
})
export const {login, logout} = authSlice.actions;
export default authSlice.reducer;