Files
Reactive-Resume/client/store/auth/authSlice.ts
Amruth Pillai 9c1380f401 🚀 release v3.0.0
2022-03-06 22:48:29 +01:00

34 lines
776 B
TypeScript

import { User } from '@reactive-resume/schema';
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
type AuthState = {
user: User | null;
accessToken: string | null;
isLoggedIn: boolean;
};
const initialState: AuthState = {
user: null,
accessToken: null,
isLoggedIn: false,
};
export const authSlice = createSlice({
name: 'auth',
initialState,
reducers: {
setUser: (state, action: PayloadAction<User>) => {
state.user = action.payload;
},
setAccessToken: (state, action: PayloadAction<string>) => {
state.accessToken = action.payload;
state.isLoggedIn = true;
},
logout: () => initialState,
},
});
export const { setUser, setAccessToken, logout } = authSlice.actions;
export default authSlice.reducer;