reagraph
Version:
WebGL Node-based Graph for React
45 lines (44 loc) • 1.41 kB
TypeScript
import { ThreeEvent } from '@react-three/fiber';
export interface HoverIntentOptions {
/**
* Interval in milliseconds between pointer position checks.
*
* @default 50
*/
interval?: number;
/**
* Pixel movement threshold below which hover intent is confirmed.
*
* @default 7
*/
sensitivity?: number;
/**
* Delay in milliseconds before hover intent is evaluated.
*
* @default 0
*/
timeout?: number;
/**
* Whether the hover intent handlers are disabled.
*/
disabled?: boolean;
/**
* Called when hover intent over is confirmed.
*/
onPointerOver: (event: ThreeEvent<PointerEvent>) => void;
/**
* Called when hover intent out is confirmed.
*/
onPointerOut: (event: ThreeEvent<PointerEvent>) => void;
}
export interface HoverIntentResult {
pointerOut: (event: ThreeEvent<PointerEvent>) => void;
pointerOver: (event: ThreeEvent<PointerEvent>) => void;
}
/**
* Hover intent identifies if the user actually is
* intending to over by measuring the position of the mouse
* once a pointer enters and determining if in a duration if
* the mouse moved inside a certain threshold and fires the events.
*/
export declare const useHoverIntent: ({ sensitivity, interval, timeout, disabled, onPointerOver, onPointerOut }: HoverIntentOptions | undefined) => HoverIntentResult;