UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

54 lines (53 loc) 2 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultPrefixCls = exports.defaultIconPrefixCls = exports.Variants = exports.ConfigContext = exports.ConfigConsumer = void 0; exports.useComponentConfig = useComponentConfig; var React = _interopRequireWildcard(require("react")); const defaultPrefixCls = exports.defaultPrefixCls = 'ant'; const defaultIconPrefixCls = exports.defaultIconPrefixCls = 'anticon'; const Variants = exports.Variants = ['outlined', 'borderless', 'filled', 'underlined']; const defaultGetPrefixCls = (suffixCls, customizePrefixCls) => { if (customizePrefixCls) { return customizePrefixCls; } return suffixCls ? `${defaultPrefixCls}-${suffixCls}` : defaultPrefixCls; }; // zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency. const ConfigContext = exports.ConfigContext = /*#__PURE__*/React.createContext({ // We provide a default function for Context without provider getPrefixCls: defaultGetPrefixCls, iconPrefixCls: defaultIconPrefixCls }); const { Consumer: ConfigConsumer } = ConfigContext; exports.ConfigConsumer = ConfigConsumer; const EMPTY_OBJECT = {}; /** * Get ConfigProvider configured component props. * This help to reduce bundle size for saving `?.` operator. * Do not use as `useMemo` deps since we do not cache the object here. * * NOTE: not refactor this with `useMemo` since memo will cost another memory space, * which will waste both compare calculation & memory. */ function useComponentConfig(propName) { const context = React.useContext(ConfigContext); const { getPrefixCls, direction, getPopupContainer } = context; const propValue = context[propName]; return Object.assign(Object.assign({ classNames: EMPTY_OBJECT, styles: EMPTY_OBJECT }, propValue), { getPrefixCls, direction, getPopupContainer }); }