UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

33 lines (29 loc) 922 B
import _extends from "@babel/runtime/helpers/extends"; import React from 'react'; import { LocaleContext } from './LocaleProvider'; // 当 存在于 y 中的key,在x 中值为 undefined 时,则取 y[key] const merge = (x, y) => { const result = _extends({}, x); Object.keys(y).map(key => { if (result[key] === undefined) { result[key] = y[key]; } }); return result; }; const withLocale = (options = {}) => Component => { const name = options.name || Component.name; return function LocaleComponent(props) { return React.createElement(LocaleContext.Consumer, null, value => { const { locale, changeLocale } = value; const mergeProps = merge(props, value[name] || {}); return React.createElement(Component, _extends({}, mergeProps, { locale: locale, changeLocale: changeLocale })); }); }; }; export default withLocale;