UNPKG

@gdjiami/hooks

Version:

react hooks for mygzb.com

38 lines (37 loc) 1.13 kB
import { RefObject } from 'react'; import { GestureCoordinate as Coord } from './utils'; export interface GestureCoordinate extends Coord { timestamp: number; target: HTMLElement; start?: GestureCoordinate; previous?: GestureCoordinate; deltaX: number; deltaY: number; delta: number; distanceX: number; distanceY: number; distance: number; velocity: number; } export interface GestureAction { down: boolean; first: boolean; coordinate: GestureCoordinate; } export interface GestureOptions<T extends HTMLElement> { onDown?: (info: GestureCoordinate) => false | void; onMove?: (info: GestureCoordinate) => void; onUp?: (info: GestureCoordinate) => void; onAction?: (info: GestureAction) => void; ref?: RefObject<T>; } export declare type GestureEvent = MouseEvent | TouchEvent; /** * 获取抽象化的mouse/touch事件 * TODO: pasive * @param options */ export default function useGesture<T extends HTMLElement = HTMLDivElement>(options: GestureOptions<T>): { ref: RefObject<T>; interacting: boolean; };