Overhauled redux states and separated auth state from user info state

This commit is contained in:
Keannu Christian Bernasol 2023-07-06 20:56:19 +08:00
parent acfb28ce3c
commit 9a246b45e1
6 changed files with 65 additions and 37 deletions

View file

@ -1,9 +1,11 @@
import { configureStore } from "@reduxjs/toolkit";
import AuthReducer from "../slices/AuthSlice/AuthSlice";
import UserReducer from "../slices/UserSlice/UserSlice";
const store = configureStore({
reducer: {
auth: AuthReducer,
user: UserReducer,
},
});

View file

@ -4,10 +4,6 @@ export const AuthSlice = createSlice({
name: "Auth",
initialState: {
creds: {
email: "",
uid: "",
username: "",
full_name: "",
logged_in: false,
},
},
@ -15,28 +11,13 @@ export const AuthSlice = createSlice({
login: (state) => {
state.creds.logged_in = true;
},
setUser: (state, action) => {
state.creds = {
email: action.payload.email,
uid: action.payload.uid,
username: action.payload.username,
full_name: action.payload.full_name,
logged_in: true,
};
},
clear: (state) => {
state.creds = {
email: "",
uid: "",
username: "",
full_name: "",
logged_in: false,
};
logout: (state) => {
state.creds.logged_in = false;
},
},
});
// Action creators are generated for each case reducer function
export const { login, setUser, clear } = AuthSlice.actions;
export const { login, logout } = AuthSlice.actions;
export default AuthSlice.reducer;

View file

@ -0,0 +1,51 @@
import { createSlice } from "@reduxjs/toolkit";
export const UserSlice = createSlice({
name: "Auth",
initialState: {
creds: {
email: "",
uid: "",
username: "",
first_name: "",
last_name: "",
full_name: "",
year_level: "",
semester: " ",
course: "",
},
},
reducers: {
setUser: (state, action) => {
state.creds = {
email: action.payload.email,
uid: action.payload.uid,
username: action.payload.username,
first_name: action.payload.first_name,
last_name: action.payload.last_name,
full_name: action.payload.first_name + " " + action.payload.last_name,
year_level: action.payload.year_level,
semester: action.payload.semester,
course: action.payload.course,
};
},
clear: (state) => {
state.creds = {
email: "",
uid: "",
username: "",
first_name: "",
last_name: "",
full_name: "",
year_level: "",
semester: " ",
course: "",
};
},
},
});
// Action creators are generated for each case reducer function
export const { setUser, clear } = UserSlice.actions;
export default UserSlice.reducer;