UNPKG

@cabify/redux-polyglot

Version:

Tool for using Polyglot.js with Redux

49 lines (35 loc) 1.64 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _lodash = require('lodash.curry'); var _lodash2 = _interopRequireDefault(_lodash); var _reactRedux = require('react-redux'); var _selectors = require('./selectors'); var _utils = require('./private/utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var getDisplayName = function getDisplayName(Component) { return Component.displayName || Component.name || 'Component'; }; var mapPolyglotToProps = function mapPolyglotToProps(options) { return function () { var getP = (0, _selectors.createGetP)(); return function (state) { return { p: getP(state, options) }; }; }; }; var translateEnhancer = (0, _lodash2.default)(function (polyglotScope, Component) { var Connected = (0, _reactRedux.connect)(mapPolyglotToProps(polyglotScope), function () { return {}; })(Component); Connected.displayName = 'Translated(' + getDisplayName(Connected.WrappedComponent) + ')'; return Connected; }); var translate = function translate(fstArg, sndArg) { if (fstArg === undefined && sndArg === undefined) return translateEnhancer({});else if ((0, _utils.isFunction)(fstArg)) return translateEnhancer({}, fstArg);else if ((0, _utils.isString)(fstArg) && sndArg === undefined) return translateEnhancer({ polyglotScope: fstArg });else if ((0, _utils.isObject)(fstArg) && sndArg === undefined) return translateEnhancer(fstArg); return translateEnhancer(fstArg, sndArg); }; exports.default = translate;