51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
|
|
import update from "immutability-helper";
|
|
|
|
import { EnumAccountActions } from "./AccountActions.js";
|
|
|
|
|
|
const initialState = {
|
|
utente: null,
|
|
userid: null,
|
|
password: null,
|
|
aliveStatus: {
|
|
application: true,
|
|
session: true
|
|
},
|
|
sessionExpired: false
|
|
}
|
|
|
|
function account(state, action) {
|
|
if (typeof state === "undefined") {
|
|
return initialState
|
|
}
|
|
|
|
switch (action.type) {
|
|
case EnumAccountActions.LOGIN_SUCCESS:
|
|
console.log("Welcome " + action.user.userId);
|
|
return update(state, { utente: { $set: action.user } });
|
|
|
|
case EnumAccountActions.SSO:
|
|
return update(state, {
|
|
userid: { $set: action.datiUtente.userId }
|
|
});
|
|
|
|
case EnumAccountActions.LOGIN_FAILED:
|
|
case EnumAccountActions.LOGOUT:
|
|
return update(state, { $set: initialState });
|
|
|
|
case EnumAccountActions.UPDATE_FORM:
|
|
return update(state, { [action.key]: { $set: action.value } });
|
|
|
|
case EnumAccountActions.SESSION_EXPIRED:
|
|
return update(state, { sessionExpired: { $set: true } });
|
|
|
|
case EnumAccountActions.ALIVE_STATUS:
|
|
return update(state, { aliveStatus: { $set: action.aliveStatus } });
|
|
|
|
default:
|
|
return state;
|
|
}
|
|
}
|
|
|
|
export default account; |