appxigon-react
Version:
Appxigon implementation on React JS
63 lines (51 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = AXGAccount;
var _lodash = require('lodash');
var _actionTypes = require('../action-types');
var initialState = {
userid: '',
token: '',
'token-expiry': null
};
function AXGAccount() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
switch (action.type) {
case _actionTypes.SET_ACCOUNT_STATE:
state[action.options.key] = action.options.value;
return assign({}, state);
case _actionTypes.SIGN_IN:
// TODO: handle side effects properly
localStorage.setItem('Appxigon.userid', action.options.userid);
localStorage.setItem('Appxigon.token', action.options.token);
localStorage.setItem('Appxigon.token-expiry', (0, _lodash.get)(action.options, 'token-expiry'));
localStorage.setItem('Appxigon.user-error', (0, _lodash.get)(action.options, 'error'));
console.info('... registered login token ...');
return _extends({}, state, {
error: action.options.error,
'error-description': (0, _lodash.get)(action.options, 'error-description'),
userid: action.options.userid,
token: action.options.token,
'token-expiry': (0, _lodash.get)(action.options, 'token-expiry')
});
case _actionTypes.SIGN_OUT:
// TODO: handle side effects properly
localStorage.removeItem('Appxigon.userid');
localStorage.removeItem('Appxigon.token');
localStorage.removeItem('Appxigon.token-expiry');
localStorage.removeItem('Appxigon.user-error');
return _extends({}, state, {
error: '',
'error-description': '',
userid: '',
token: '',
'token-expiry': null
});
default:
return state;
}
}