UNPKG

@alicloudfe/components

Version:

A react component library for aliyun

53 lines (52 loc) 2.31 kB
"use strict"; 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;