UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

67 lines (58 loc) 2.55 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; import _createClass from "@babel/runtime/helpers/esm/createClass"; import _inherits from "@babel/runtime/helpers/esm/inherits"; import _createSuper from "@babel/runtime/helpers/esm/createSuper"; import * as React from 'react'; import defaultLocaleData from './default'; import LocaleContext from './context'; var LocaleReceiver = /*#__PURE__*/function (_React$Component) { _inherits(LocaleReceiver, _React$Component); var _super = _createSuper(LocaleReceiver); function LocaleReceiver() { _classCallCheck(this, LocaleReceiver); return _super.apply(this, arguments); } _createClass(LocaleReceiver, [{ key: "getLocale", value: function getLocale() { var _this$props = this.props, componentName = _this$props.componentName, defaultLocale = _this$props.defaultLocale; var locale = defaultLocale || defaultLocaleData[componentName !== null && componentName !== void 0 ? componentName : 'global']; var antLocale = this.context; var localeFromContext = componentName && antLocale ? antLocale[componentName] : {}; return _extends(_extends({}, locale instanceof 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 defaultLocaleData.locale; } return localeCode; } }, { key: "render", value: function render() { return this.props.children(this.getLocale(), this.getLocaleCode(), this.context); } }]); return LocaleReceiver; }(React.Component); export { LocaleReceiver as default }; LocaleReceiver.defaultProps = { componentName: 'global' }; LocaleReceiver.contextType = LocaleContext; export function useLocaleReceiver(componentName, defaultLocale) { var antLocale = React.useContext(LocaleContext); var componentLocale = React.useMemo(function () { var locale = defaultLocale || defaultLocaleData[componentName || 'global']; var localeFromContext = componentName && antLocale ? antLocale[componentName] : {}; return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {}); }, [componentName, defaultLocale, antLocale]); return [componentLocale]; }