mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
2c27ef9c2c
* chore: Restore menu safe-area Removed in #10219 * Remove unneccessary dev translations
30 lines
661 B
TypeScript
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;
|
|
};
|