UNPKG

@alicloud/console-components

Version:
43 lines (42 loc) 1.67 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) { var Wrapper = React.forwardRef(function (props, ref) { var defaultOffsetY = useDefaultOffsetY(); var popupProps = __assign({ align: 'tl bl', offset: [0, defaultOffsetY] }, 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; }