Files
outline/app/hooks/useMousePosition.ts
T
Tom Moor 2c27ef9c2c chore: Restore menu safe-area (#10415)
* chore: Restore menu safe-area

Removed in #10219

* Remove unneccessary dev translations
2025-10-18 19:33:35 -04:00

30 lines
661 B
TypeScript

import { useState, useMemo } from "react";
import useEventListener from "./useEventListener";
/**
* Mouse position as a tuple of [x, y]
*/
type MousePosition = [number, number];
/**
* Hook to get the current mouse position
*
* @returns Mouse position as a tuple of [x, y]
*/
export const useMousePosition = () => {
const [mousePosition, setMousePosition] = useState<MousePosition>([0, 0]);
const updateMousePosition = useMemo(
() => (ev: MouseEvent) => {
setMousePosition([ev.clientX, ev.clientY]);
},
[]
);
useEventListener("mousemove", updateMousePosition, undefined, {
passive: true,
});
return mousePosition;
};