Repository URL to install this package:
|
Version:
5.0.1 ▾
|
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = loadI18NSaga;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _effects = require("redux-saga/effects");
var _reactIntl = require("react-intl");
var _actions = require("../actions");
var _transform = require("../../onesky/transform");
var _cookie = _interopRequireDefault(require("../../cookie"));
var _import = require("../../import");
var _utils = require("../../utils");
var _getCookieDomain = _interopRequireDefault(require("./getCookieDomain"));
var _marked = /*#__PURE__*/_regenerator.default.mark(onChangeLocale),
_marked2 = /*#__PURE__*/_regenerator.default.mark(watchChangeLocale),
_marked3 = /*#__PURE__*/_regenerator.default.mark(loadI18NSaga);
function onChangeLocale(options, action) {
var locale, cookieDomain, reduxState, messages, normalizedLocale, _normalizedLocale$spl, _normalizedLocale$spl2, language, _yield$all, data, _data, reactIntlLocaleData, messagesData;
return _regenerator.default.wrap(function onChangeLocale$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
locale = action.payload.locale;
cookieDomain = (0, _getCookieDomain.default)();
_context.next = 4;
return (0, _effects.select)(function (state) {
return state[options.domain || 'i18n'];
});
case 4:
reduxState = _context.sent;
messages = reduxState.messages;
_cookie.default.set('locale', locale, undefined, cookieDomain);
if (document.documentElement) {
document.documentElement.lang = locale;
}
if (messages[locale]) {
_context.next = 27;
break;
}
_context.prev = 9;
normalizedLocale = (0, _utils.normalizeLocale)(locale);
_normalizedLocale$spl = normalizedLocale.split('-'), _normalizedLocale$spl2 = (0, _slicedToArray2.default)(_normalizedLocale$spl, 1), language = _normalizedLocale$spl2[0];
_context.next = 14;
return (0, _effects.all)({
intl: (0, _effects.call)(_import.importIntl),
data: (0, _effects.call)(options.loadLocaleFiles, locale, language)
});
case 14:
_yield$all = _context.sent;
data = _yield$all.data;
_data = (0, _slicedToArray2.default)(data, 2), reactIntlLocaleData = _data[0], messagesData = _data[1];
if (reactIntlLocaleData) {
(0, _reactIntl.addLocaleData)((0, _import.extractIntlLocaleData)(reactIntlLocaleData, locale));
}
_context.next = 20;
return (0, _effects.put)((0, _actions.fetchMessagesSuccess)(locale, (0, _transform.flatten)(messagesData)));
case 20:
_context.next = 27;
break;
case 22:
_context.prev = 22;
_context.t0 = _context["catch"](9);
console.log('error', _context.t0);
_context.next = 27;
return (0, _effects.put)((0, _actions.fetchMessagesError)(_context.t0));
case 27:
case "end":
return _context.stop();
}
}
}, _marked, null, [[9, 22]]);
}
function watchChangeLocale(options) {
return _regenerator.default.wrap(function watchChangeLocale$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0, _effects.takeLatest)(_actions.ActionTypes.CHANGE_LOCALE, onChangeLocale, options);
case 2:
case "end":
return _context2.stop();
}
}
}, _marked2);
}
function loadI18NSaga() {
var options,
_args3 = arguments;
return _regenerator.default.wrap(function loadI18NSaga$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
_context3.next = 3;
return (0, _effects.all)([(0, _effects.call)(watchChangeLocale, options)]);
case 3:
case "end":
return _context3.stop();
}
}
}, _marked3);
}
//# sourceMappingURL=index.js.map