tdesign-react
Version:
TDesign Component for React
63 lines (57 loc) • 1.8 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
;
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