UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

75 lines (60 loc) 1.9 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _tooltip = _interopRequireDefault(require("../tooltip")); function useCombinedRefs() { for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) { refs[_key] = arguments[_key]; } var targetRef = React.useRef(); React.useEffect(function () { refs.forEach(function (ref) { if (!ref) return; if (typeof ref === 'function') { ref(targetRef.current); } else { ref.current = targetRef.current; } }); }, [refs]); return targetRef; } var SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) { var visible = props.visible; var innerRef = React.useRef(null); var tooltipRef = useCombinedRefs(ref, innerRef); var rafRef = React.useRef(null); function cancelKeepAlign() { window.cancelAnimationFrame(rafRef.current); rafRef.current = null; } function keepAlign() { if (rafRef.current !== null) { return; } rafRef.current = window.requestAnimationFrame(function () { tooltipRef.current.forcePopupAlign(); rafRef.current = null; keepAlign(); }); } React.useEffect(function () { if (visible) { keepAlign(); } else { cancelKeepAlign(); } return cancelKeepAlign; }, [visible]); return /*#__PURE__*/React.createElement(_tooltip["default"], (0, _extends2["default"])({ ref: tooltipRef }, props)); }); var _default = SliderTooltip; exports["default"] = _default;