UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

46 lines (38 loc) 1.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _LocaleProvider = require("./LocaleProvider"); // 当 存在于 y 中的key,在x 中值为 undefined 时,则取 y[key] var merge = function merge(x, y) { var result = (0, _extends2.default)({}, x); Object.keys(y).map(function (key) { if (result[key] === undefined) { result[key] = y[key]; } }); return result; }; var withLocale = function withLocale() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return function (Component) { var name = options.name || Component.name; return function LocaleComponent(props) { return _react.default.createElement(_LocaleProvider.LocaleContext.Consumer, null, function (value) { var locale = value.locale, changeLocale = value.changeLocale; var mergeProps = merge(props, value[name] || {}); return _react.default.createElement(Component, (0, _extends2.default)({}, mergeProps, { locale: locale, changeLocale: changeLocale })); }); }; }; }; var _default = withLocale; exports.default = _default;