@clayui/shared
Version:
ClayShared component
18 lines (17 loc) • 549 B
JavaScript
import { useEffect, useState } from "react";
import { throttle } from "./throttle";
function useMousePosition(delay = 200) {
const [mousePosition, setMousePosition] = useState([0, 0]);
useEffect(() => {
const handleMousePosition = throttle(
(event) => setMousePosition([event.clientX, event.clientY]),
delay
);
window.addEventListener("mousemove", handleMousePosition);
return () => window.removeEventListener("mousemove", handleMousePosition);
}, [delay]);
return mousePosition;
}
export {
useMousePosition
};