This commit is contained in:
2024-03-03 07:23:41 +03:00
parent d43c0a5839
commit 0db252bb27
57 changed files with 1707 additions and 105 deletions

34
src/features/authSlice.ts Normal file
View File

@@ -0,0 +1,34 @@
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;