mirror of
https://git.rwth-aachen.de/acs/public/villas/web/
synced 2025-03-30 00:00:13 +01:00
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
import { createSlice } from "@reduxjs/toolkit";
|
|
import ICDataDataManager from "../../user/users-data-manager";
|
|
|
|
const initialState = {
|
|
currentUser: null,
|
|
token: null,
|
|
loginMessage: null,
|
|
config: null,
|
|
};
|
|
|
|
const loginSlice = createSlice({
|
|
name: "login",
|
|
initialState,
|
|
reducers: {
|
|
config_loaded: (state, action) => {
|
|
state.config = action.payload;
|
|
},
|
|
config_load_error: (state, action) => {
|
|
state.config = null;
|
|
},
|
|
users_login: (state, action) => {
|
|
UsersDataManager.login(action.payload.username, action.payload.password);
|
|
state.loginMessage = null;
|
|
},
|
|
users_extlogin: (state, action) => {
|
|
UsersDataManager.login();
|
|
state.loginMessage = null;
|
|
},
|
|
users_logout: (state, action) => {
|
|
ICDataDataManager.closeAll();
|
|
localStorage.clear();
|
|
state.token = null;
|
|
state.currentUser = null;
|
|
state.loginMessage = null;
|
|
},
|
|
users_logged_in: (state, action) => {
|
|
state.token = action.payload.token;
|
|
state.currentUser = action.payload.currentUser;
|
|
},
|
|
users_login_error: (state, action) => {
|
|
if (action.payload.error && !action.payload.error.handled) {
|
|
state.loginMessage = "Wrong credentials! Please try again.";
|
|
}
|
|
},
|
|
},
|
|
});
|
|
|
|
// Action creators are generated for each case reducer function
|
|
export const {
|
|
config_loaded,
|
|
config_load_error,
|
|
users_logged_in,
|
|
users_login_error,
|
|
users_login,
|
|
users_extlogin,
|
|
users_logout,
|
|
} = loginSlice.actions;
|
|
|
|
export default loginSlice.reducer;
|