UNPKG

tdesign-react

Version:
60 lines (56 loc) 1.72 kB
/** * tdesign v1.16.6 * (c) 2026 tdesign * @license MIT */ import { _ as _slicedToArray } from '../../_chunks/dep-dcb6b3df.js'; import { useState, useRef } from 'react'; import useMouseEvent from '../../hooks/useMouseEvent.js'; import '../../_chunks/dep-054b5858.js'; import '../../_chunks/dep-3d8e28be.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