Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/i18n / state / reducer / index.js
Size: Mime:
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _actions = require("../actions");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var reducer = function reducer() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case _actions.ActionTypes.CHANGE_LOCALE:
      return _objectSpread(_objectSpread({}, state), {}, {
        locale: action.payload.locale
      });

    case _actions.ActionTypes.FETCH_MESSAGES:
      return _objectSpread(_objectSpread({}, state), {}, {
        loading: true,
        error: null
      });

    case _actions.ActionTypes.FETCH_MESSAGES_SUCCESS:
      {
        var messages = _objectSpread(_objectSpread({}, state.messages), {}, (0, _defineProperty2.default)({}, action.payload.locale, action.payload.messages));

        return _objectSpread(_objectSpread({}, state), {}, {
          loading: false,
          error: null,
          messages: messages
        });
      }

    case _actions.ActionTypes.FETCH_MESSAGES_ERROR:
      {
        return _objectSpread(_objectSpread({}, state), {}, {
          loading: false,
          error: action.payload.error
        });
      }

    default:
      return state;
  }
};
/**
 * Creates a reducer that can be used with [`combineReducer`](http://redux.js.org/docs/api/combineReducers.html)
 */


var _default = function _default() {
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  return (0, _defineProperty2.default)({}, options.domain || 'i18n', reducer);
};

exports.default = _default;
//# sourceMappingURL=index.js.map