@izhann/react-cursor-fx
Version:
Interactive cursor effects for React and Next.js applications — zero runtime dependencies
17 lines (16 loc) • 650 B
TypeScript
/**
* Module-level singleton mouse position store.
*
* Replaces 8+ independent window.mousemove listeners with a single shared one.
* Listener is added lazily on first subscribe — safe for SSR and "sideEffects": false.
* Subscribers receive raw (x, y) synchronously inside the event handler, with no
* React state or re-render overhead in the hot path.
*/
type Listener = (x: number, y: number) => void;
export declare const mouseStore: {
readonly x: number;
readonly y: number;
/** Subscribe to every mouse position change. Returns an unsubscribe function. */
readonly subscribe: (fn: Listener) => () => void;
};
export {};