54 lines
2.0 KiB
JavaScript
54 lines
2.0 KiB
JavaScript
|
|
"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
|
||
|
|
});
|
||
|
|
}
|