UNPKG

@alicloudfe/components

Version:

A react component library for aliyun

46 lines (45 loc) 1.85 kB
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); }; // 弹层类组件高阶组件,默认向下 4px 弹出 import React from 'react'; import hoistNonReactStatics from 'hoist-non-react-statics'; import { useCssVar } from './useCssVar'; var HOC = function (WrappedComponents, v2) { if (v2 === void 0) { v2 = true; } var Wrapper = React.forwardRef(function (props, ref) { var defaultOffsetY = useDefaultOffsetY(); var theme = 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.createElement(WrappedComponents, __assign({ ref: ref }, props, { popupProps: popupProps }))); }); hoistNonReactStatics(Wrapper, WrappedComponents); return Wrapper; }; export default HOC; var OverlayHOC = function (WrappedComponents) { var Wrapper = React.forwardRef(function (props, ref) { var defaultOffsetY = useDefaultOffsetY(); return (React.createElement(WrappedComponents, __assign({ ref: ref, align: "tl bl", shouldUpdatePosition: true, offset: [0, defaultOffsetY] }, props))); }); hoistNonReactStatics(Wrapper, WrappedComponents); return Wrapper; }; export { OverlayHOC }; export function useDefaultOffsetY() { var varStr = useCssVar('--overlay-offset'); var num = parseInt(varStr.trim()); if (Number.isFinite(num)) { return num; } return 4; }