UNPKG

appxigon-react

Version:

Appxigon implementation on React JS

63 lines (51 loc) 2.1 kB
'use strict'; 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; } }