UNPKG

@kisstar/rc-ui

Version:

UI component library built with React Hooks.

42 lines (41 loc) 1.71 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; /** * 以 ant-design 的方式为组件提供统一的全局化配置 * ant-design is licensed MIT. https://github.com/ant-design/ant-design */ import React from 'react'; import { ConfigConsumer, ConfigContext } from './context'; /** * 为组件提供统一的全局化配置。 * * ConfigProvider 使用 React 的 `context` 特性,只需在应用外围包裹一次即可全局生效。 */ export var ConfigProvider = function (props) { var getPrefixClsWrapper = function (context) { return function (suffixCls, customizePrefixCls) { var prefixCls = props.prefixCls; if (customizePrefixCls) return customizePrefixCls; var mergedPrefixCls = prefixCls || context.getPrefixCls(''); return suffixCls ? mergedPrefixCls + "-" + suffixCls : mergedPrefixCls; }; }; var renderProvider = function (context) { var children = props.children; var config = __assign(__assign({}, context), { getPrefixCls: getPrefixClsWrapper(context) }); return React.createElement(ConfigContext.Provider, { value: config }, children); }; return React.createElement(ConfigConsumer, null, function (context) { return renderProvider(context); }); }; export { ConfigConsumer, ConfigContext }; export default ConfigProvider;