tdesign-react
Version:
TDesign Component for React
39 lines (35 loc) • 1.19 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { useRef, useEffect } from 'react';
import useIsomorphicLayoutEffect from '../../hooks/useLayoutEffect.js';
import '../../_chunks/dep-3a09424a.js';
import 'lodash-es';
function useDialogPosition(visible, dialogCardRef) {
var mousePosRef = useRef(null);
var getClickPosition = function getClickPosition(e) {
mousePosRef.current = {
x: e.clientX,
y: e.clientY
};
setTimeout(function () {
mousePosRef.current = null;
}, 100);
};
useIsomorphicLayoutEffect(function () {
document.addEventListener("click", getClickPosition, true);
return function () {
document.removeEventListener("click", getClickPosition, true);
};
}, []);
useEffect(function () {
if (!visible) return;
if (mousePosRef.current && dialogCardRef.current) {
dialogCardRef.current.style.transformOrigin = "".concat(mousePosRef.current.x - dialogCardRef.current.offsetLeft, "px ").concat(mousePosRef.current.y - dialogCardRef.current.offsetTop, "px");
}
}, [visible, dialogCardRef]);
}
export { useDialogPosition as default };
//# sourceMappingURL=useDialogPosition.js.map