UNPKG

@clayui/shared

Version:

ClayShared component

27 lines (25 loc) 939 B
"use strict"; 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;