UNPKG

zp-bee

Version:

zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

83 lines (64 loc) 2.94 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useLocaleReceiver = useLocaleReceiver; exports.default = void 0; 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 = _interopRequireDefault(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 Object.assign(Object.assign({}, 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.default.Component); exports.default = LocaleReceiver; LocaleReceiver.defaultProps = { componentName: 'global' }; LocaleReceiver.contextType = _context.default; function useLocaleReceiver(componentName, defaultLocale) { var antLocale = _react.default.useContext(_context.default); var componentLocale = _react.default.useMemo(function () { var locale = defaultLocale || _default.default[componentName || 'global']; var localeFromContext = componentName && antLocale ? antLocale[componentName] : {}; return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {}); }, [componentName, defaultLocale, antLocale]); return [componentLocale]; }