antd
Version:
An enterprise-class UI design language and React components implementation
40 lines (39 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMergedMask = exports.normalizeMaskConfig = void 0;
var _react = require("react");
const normalizeMaskConfig = (mask, maskClosable) => {
let maskConfig = {};
if (mask && typeof mask === 'object') {
maskConfig = mask;
}
if (typeof mask === 'boolean') {
maskConfig = {
enabled: mask
};
}
if (maskConfig.closable === undefined && maskClosable !== undefined) {
maskConfig.closable = maskClosable;
}
return maskConfig;
};
exports.normalizeMaskConfig = normalizeMaskConfig;
const useMergedMask = (mask, contextMask, prefixCls, maskClosable) => {
return (0, _react.useMemo)(() => {
const maskConfig = normalizeMaskConfig(mask, maskClosable);
const contextMaskConfig = normalizeMaskConfig(contextMask);
const mergedConfig = {
blur: false,
...contextMaskConfig,
...maskConfig,
closable: maskConfig.closable ?? maskClosable ?? contextMaskConfig.closable ?? true
};
const className = mergedConfig.blur ? `${prefixCls}-mask-blur` : undefined;
return [mergedConfig.enabled !== false, {
mask: className
}, !!mergedConfig.closable];
}, [mask, contextMask, prefixCls, maskClosable]);
};
exports.useMergedMask = useMergedMask;