@alicloudfe/components
Version:
A react component library for aliyun
53 lines (52 loc) • 2.31 kB
JavaScript
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);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDefaultOffsetY = exports.OverlayHOC = void 0;
// 弹层类组件高阶组件,默认向下 4px 弹出
var react_1 = __importDefault(require("react"));
var hoist_non_react_statics_1 = __importDefault(require("hoist-non-react-statics"));
var useCssVar_1 = require("./useCssVar");
var HOC = function (WrappedComponents, v2) {
if (v2 === void 0) { v2 = true; }
var Wrapper = react_1.default.forwardRef(function (props, ref) {
var defaultOffsetY = useDefaultOffsetY();
var theme = useCssVar_1.useCssVar('--alicloudfe-components-theme').trim();
var openV2 = theme.startsWith('hybridcloud') && v2;
var popupProps = __assign({ align: 'tl bl', offset: [0, defaultOffsetY], v2: openV2 }, props.popupProps);
return (react_1.default.createElement(WrappedComponents, __assign({ ref: ref }, props, { popupProps: popupProps })));
});
hoist_non_react_statics_1.default(Wrapper, WrappedComponents);
return Wrapper;
};
exports.default = HOC;
var OverlayHOC = function (WrappedComponents) {
var Wrapper = react_1.default.forwardRef(function (props, ref) {
var defaultOffsetY = useDefaultOffsetY();
return (react_1.default.createElement(WrappedComponents, __assign({ ref: ref, align: "tl bl", shouldUpdatePosition: true, offset: [0, defaultOffsetY] }, props)));
});
hoist_non_react_statics_1.default(Wrapper, WrappedComponents);
return Wrapper;
};
exports.OverlayHOC = OverlayHOC;
function useDefaultOffsetY() {
var varStr = useCssVar_1.useCssVar('--overlay-offset');
var num = parseInt(varStr.trim());
if (Number.isFinite(num)) {
return num;
}
return 4;
}
exports.useDefaultOffsetY = useDefaultOffsetY;
;