UNPKG

tdesign-react

Version:
59 lines (55 loc) 1.68 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ import { _ as _slicedToArray } from '../../_chunks/dep-10d5731f.js'; import { useState, useRef } from 'react'; import useMouseEvent from '../../hooks/useMouseEvent.js'; import '../../_chunks/dep-74a10cfb.js'; var usePosition = function usePosition(imgRef, options) { var _ref = options || {}, _ref$initPosition = _ref.initPosition, initPosition = _ref$initPosition === void 0 ? [0, 0] : _ref$initPosition; var _useState = useState(initPosition), _useState2 = _slicedToArray(_useState, 2), position = _useState2[0], setPosition = _useState2[1]; var lastScreenPositionRef = useRef(null); useMouseEvent(imgRef, { onDown: function onDown(e) { var screenX = e.screenX, screenY = e.screenY; lastScreenPositionRef.current = { x: screenX, y: screenY }; }, onMove: function onMove(e) { if (!lastScreenPositionRef.current) return; var screenX = e.screenX, screenY = e.screenY; var _lastScreenPositionRe = lastScreenPositionRef.current, lastX = _lastScreenPositionRe.x, lastY = _lastScreenPositionRe.y; setPosition(function (_ref2) { var _ref3 = _slicedToArray(_ref2, 2), x = _ref3[0], y = _ref3[1]; return [x + screenX - lastX, y + screenY - lastY]; }); lastScreenPositionRef.current = { x: screenX, y: screenY }; }, onUp: function onUp() { lastScreenPositionRef.current = null; } }); return { position: position }; }; export { usePosition as default }; //# sourceMappingURL=usePosition.js.map