Appearance
useElementByPoint
Reactive element by point
Demo
Usage
tsx
import { useElementByPoint, useMouse } from '@reause/core'
const { x, y } = useMouse({ type: 'client' })
const { element } = useElementByPoint({ x, y })Source Forms
x and y are read-only value sources and take plain numbers. Resolve a React ref or state value at the call site; multiple stays a plain value / React ref (a behavior toggle):
tsx
const { x, y } = useMouse({ type: 'client' })
const { element } = useElementByPoint({ x, y }) // read on every scheduler tick
const { element: refElement } = useElementByPoint({ x: xRef.current, y: yRef.current })Type Declarations
ts
export interface UseElementByPointOptions<Multiple extends boolean = false> {
x: number;
y: number;
multiple?: Multiple;
document?: Document;
scheduler?: (cb: () => void) => Pausable;
}
export interface UseElementByPointReturn<Multiple extends boolean = false> {
isSupported: boolean;
element: Multiple extends true ? HTMLElement[] : HTMLElement | null;
isActive: boolean;
pause: () => void;
resume: () => void;
}
export function useElementByPoint<M extends boolean = false>(options: UseElementByPointOptions<M>): UseElementByPointReturn<M>