web_react/real_estate/client/src/redux/user/userSlice.js

70 lines
No EOL
2 KiB
JavaScript

import { createSlice } from "@reduxjs/toolkit";
const initialState = {
currentUser: null,
error: null,
loading: false,
};
const userSlice = createSlice({
name: 'user',
initialState,
reducers:{
loginStart: (state) => {
state.loading = true;
},
loginSuccess: (state, action) => {
state.currentUser = action.payload;
state.loading = false;
state.error = null;
},
loginFailure: (state, action) => {
state.error = action.payload;
state.loading = false;
},
updateUserStart: (state) => {
state.loading = true;
},
updateUserSuccess: (state, action) => {
state.currentUser = action.payload;
state.loading = false;
state.error = null;
},
updateUserFailure: (state, action) => {
state.error = action.payload;
state.loading = false;
},
deleteUserStart: (state) => {
state.loading = true;
},
deleteUserSuccess: (state) => {
state.currentUser = null;
state.loading = false;
state.error = null;
},
deleteUserFailure: (state, action) => {
state.error = action.payload;
state.loading = false;
},
logoutUserStart: (state) => {
state.loading = true;
},
logoutUserSuccess: (state) => {
state.currentUser = null;
state.loading = false;
state.error = null;
},
logoutUserFailure: (state, action) => {
state.error = action.payload;
state.loading = false;
},
}
});
export const {
loginStart, loginSuccess, loginFailure,
updateUserStart, updateUserSuccess, updateUserFailure,
deleteUserStart, deleteUserSuccess, deleteUserFailure,
logoutUserStart, logoutUserSuccess, logoutUserFailure} = userSlice.actions;
export default userSlice.reducer;