@vergiss/chooks
Version:
React hooks library
42 lines (38 loc) • 920 B
JavaScript
import { useState, useEffect } from 'react';
var initState = {
screenX: NaN,
screenY: NaN,
clientX: NaN,
clientY: NaN,
pageX: NaN,
pageY: NaN
};
function useMousePosition() {
var _a = useState(initState),
pos = _a[0],
setPos = _a[1];
useEffect(function () {
var setMousePosition = function setMousePosition(e) {
var screenX = e.screenX,
screenY = e.screenY,
clientX = e.clientX,
clientY = e.clientY,
pageX = e.pageX,
pageY = e.pageY;
setPos({
screenX: screenX,
screenY: screenY,
clientX: clientX,
clientY: clientY,
pageX: pageX,
pageY: pageY
});
};
document.addEventListener('mousemove', setMousePosition);
return function () {
document.removeEventListener('mousemove', setMousePosition);
};
}, []);
return pos;
}
export { useMousePosition };