UNPKG

tdesign-react

Version:
63 lines (57 loc) 1.8 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../../_chunks/dep-8e4d656d.js'); var React = require('react'); var hooks_useMouseEvent = require('../../hooks/useMouseEvent.js'); require('../../_chunks/dep-00b49251.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 = React.useState(initPosition), _useState2 = slicedToArray._slicedToArray(_useState, 2), position = _useState2[0], setPosition = _useState2[1]; var lastScreenPositionRef = React.useRef(null); hooks_useMouseEvent["default"](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._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 }; }; exports["default"] = usePosition; //# sourceMappingURL=usePosition.js.map