63 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-08-20 23:25:37 +04:00
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;