UNPKG

react-translate-maker

Version:

React translation module. Internationalize your great project.

76 lines (60 loc) 1.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = LocaleSwitch; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = require("react"); var _TranslateContext = _interopRequireDefault(require("./TranslateContext")); function LocaleSwitch(props) { var onError = props.onError, onChange = props.onChange, children = props.children; var _useContext = (0, _react.useContext)(_TranslateContext.default), translate = _useContext.translate; var handleChange = (0, _react.useCallback)( /*#__PURE__*/ function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee(locale) { return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return translate.setLocale(locale); case 3: if (onChange) { onChange(locale); } _context.next = 9; break; case 6: _context.prev = 6; _context.t0 = _context["catch"](0); if (onError) { onError(_context.t0); } case 9: case "end": return _context.stop(); } } }, _callee, null, [[0, 6]]); })); return function (_x) { return _ref.apply(this, arguments); }; }(), []); return children({ locale: translate.getLocale(), changeLocale: handleChange }); } LocaleSwitch.defaultProps = { onError: undefined, onChange: undefined }; //# sourceMappingURL=LocaleSwitch.js.map