UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

150 lines (120 loc) 4.46 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.LocaleContext = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); 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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _moment = _interopRequireDefault(require("moment")); var _shared = require("choerodon-ui/shared"); var _interopDefault = _interopRequireDefault(require("../_util/interopDefault")); var _locale = require("../modal/locale"); var _locale2 = require("../notification/locale"); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } var LocaleContext = (0, _shared.getContext)(_shared.Symbols.LocaleContext, {}); exports.LocaleContext = LocaleContext; function setMomentLocale(locale) { if (locale && locale.locale) { (0, _interopDefault["default"])(_moment["default"]).locale(locale.locale); } else { (0, _interopDefault["default"])(_moment["default"]).locale('en'); } } var LocaleProvider = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(LocaleProvider, _Component); var _super = _createSuper(LocaleProvider); function LocaleProvider() { (0, _classCallCheck2["default"])(this, LocaleProvider); return _super.apply(this, arguments); } (0, _createClass2["default"])(LocaleProvider, [{ key: "getContextValue", value: function getContextValue() { var locale = this.props.locale; return { c7nLocale: (0, _objectSpread2["default"])({}, locale, { exist: true }) }; } }, { key: "componentWillMount", value: function componentWillMount() { var locale = this.props.locale; setMomentLocale(locale); this.componentDidUpdate(); } }, { key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { var locale = this.props.locale; var nextLocale = nextProps.locale; if (locale !== nextLocale) { setMomentLocale(nextProps.locale); } } }, { key: "componentDidUpdate", value: function componentDidUpdate() { var locale = this.props.locale; (0, _locale.changeConfirmLocale)(locale && locale.Modal); (0, _locale2.changeNoticeLocale)(locale && locale.Notification); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { (0, _locale.changeConfirmLocale)(); (0, _locale2.changeNoticeLocale)(); } }, { key: "render", value: function render() { var children = this.props.children; return _react["default"].createElement(LocaleContext.Provider, { value: this.getContextValue() }, _react.Children.only(children)); } }]); return LocaleProvider; }(_react.Component); exports["default"] = LocaleProvider; LocaleProvider.propTypes = { locale: _propTypes["default"].object }; LocaleProvider.defaultProps = { locale: {} }; //# sourceMappingURL=index.js.map