123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import _extends from "@babel/runtime/helpers/esm/extends";
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
- import * as React from 'react';
- import { useRef } from 'react';
- import classNames from 'classnames';
- import CSSMotion from 'rc-motion';
- import { offset } from "../../util";
- import Panel from "./Panel";
- var Content = /*#__PURE__*/React.forwardRef(function (props, ref) {
- var prefixCls = props.prefixCls,
- title = props.title,
- style = props.style,
- className = props.className,
- visible = props.visible,
- forceRender = props.forceRender,
- destroyOnClose = props.destroyOnClose,
- motionName = props.motionName,
- ariaId = props.ariaId,
- onVisibleChanged = props.onVisibleChanged,
- mousePosition = props.mousePosition;
- var dialogRef = useRef();
- // ============================= Style ==============================
- var _React$useState = React.useState(),
- _React$useState2 = _slicedToArray(_React$useState, 2),
- transformOrigin = _React$useState2[0],
- setTransformOrigin = _React$useState2[1];
- var contentStyle = {};
- if (transformOrigin) {
- contentStyle.transformOrigin = transformOrigin;
- }
- function onPrepare() {
- var elementOffset = offset(dialogRef.current);
- setTransformOrigin(mousePosition && (mousePosition.x || mousePosition.y) ? "".concat(mousePosition.x - elementOffset.left, "px ").concat(mousePosition.y - elementOffset.top, "px") : '');
- }
- // ============================= Render =============================
- return /*#__PURE__*/React.createElement(CSSMotion, {
- visible: visible,
- onVisibleChanged: onVisibleChanged,
- onAppearPrepare: onPrepare,
- onEnterPrepare: onPrepare,
- forceRender: forceRender,
- motionName: motionName,
- removeOnLeave: destroyOnClose,
- ref: dialogRef
- }, function (_ref, motionRef) {
- var motionClassName = _ref.className,
- motionStyle = _ref.style;
- return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {
- ref: ref,
- title: title,
- ariaId: ariaId,
- prefixCls: prefixCls,
- holderRef: motionRef,
- style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),
- className: classNames(className, motionClassName)
- }));
- });
- });
- Content.displayName = 'Content';
- export default Content;
|