@clayui/shared
Version:
ClayShared component
27 lines (25 loc) • 939 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMousePosition = void 0;
var _react = require("react");
var _throttle = require("./throttle");
/**
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: BSD-3-Clause
*/
/**
* Hook to get the current mouse position
*/
const useMousePosition = function () {
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 200;
const [mousePosition, setMousePosition] = (0, _react.useState)([0, 0]);
(0, _react.useEffect)(() => {
const handleMousePosition = (0, _throttle.throttle)(event => setMousePosition([event.clientX, event.clientY]), delay);
window.addEventListener('mousemove', handleMousePosition);
return () => window.removeEventListener('mousemove', handleMousePosition);
}, [delay]);
return mousePosition;
};
exports.useMousePosition = useMousePosition;