import { useState } from "react"; import { useIsomorphicEffect } from "hooks"; /** * * @kind 08-Mouse */ export const useMouse = () => { const [mousePosition, setMousePosition] = useState<{ x: number | null; y: number | null }>({ x: null, y: null }); useIsomorphicEffect(() => { const updateMousePosition = (ev: MouseEvent) => { setMousePosition({ x: ev.clientX, y: ev.clientY }); }; window.addEventListener("mousemove", updateMousePosition); return () => { window.removeEventListener("mousemove", updateMousePosition); }; }, []); return mousePosition; };