41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.useMergedMask = exports.normalizeMaskConfig = void 0;
|
|
var _react = require("react");
|
|
var _is = require("../is");
|
|
const normalizeMaskConfig = (mask, maskClosable) => {
|
|
let maskConfig = {};
|
|
if ((0, _is.isPlainObject)(mask)) {
|
|
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; |