UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

85 lines (66 loc) 3.17 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useLocaleReceiver = useLocaleReceiver; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var React = _interopRequireWildcard(require("react")); var _default = _interopRequireDefault(require("./default")); var _context = _interopRequireDefault(require("./context")); var LocaleReceiver = /*#__PURE__*/function (_React$Component) { (0, _inherits2["default"])(LocaleReceiver, _React$Component); var _super = (0, _createSuper2["default"])(LocaleReceiver); function LocaleReceiver() { (0, _classCallCheck2["default"])(this, LocaleReceiver); return _super.apply(this, arguments); } (0, _createClass2["default"])(LocaleReceiver, [{ key: "getLocale", value: function getLocale() { var _this$props = this.props, componentName = _this$props.componentName, defaultLocale = _this$props.defaultLocale; var locale = defaultLocale || _default["default"][componentName || 'global']; var antLocale = this.context; var localeFromContext = componentName && antLocale ? antLocale[componentName] : {}; return (0, _extends2["default"])((0, _extends2["default"])({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {}); } }, { key: "getLocaleCode", value: function getLocaleCode() { var antLocale = this.context; var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale if (antLocale && antLocale.exist && !localeCode) { return _default["default"].locale; } return localeCode; } }, { key: "render", value: function render() { return this.props.children(this.getLocale(), this.getLocaleCode(), this.context); } }]); return LocaleReceiver; }(React.Component); exports["default"] = LocaleReceiver; LocaleReceiver.defaultProps = { componentName: 'global' }; LocaleReceiver.contextType = _context["default"]; function useLocaleReceiver(componentName, defaultLocale) { var antLocale = React.useContext(_context["default"]); var componentLocale = React.useMemo(function () { var locale = defaultLocale || _default["default"][componentName || 'global']; var localeFromContext = componentName && antLocale ? antLocale[componentName] : {}; return (0, _extends2["default"])((0, _extends2["default"])({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {}); }, [componentName, defaultLocale, antLocale]); return [componentLocale]; }