UNPKG

@yandex/ui

Version:

Yandex UI components

72 lines (71 loc) 2.16 kB
import { RefObject } from 'react'; /** * Вектор, выраженный двумя координатами */ declare type Vector = { x: number; y: number; }; /** * Объект состояния жеста, передается единственным аргументом в колбэк */ interface GestureState<T> { /** * Координаты пальца пользователя в момент предыдущего срабатывания функции */ previousPosition: Vector; /** * Координаты пальца пользователя в данный момент */ currentPosition: Vector; /** * Координаты начала жеста */ initialPosition: Vector; /** * Сдвиг по каждой из осей с момента начала жеста */ movement: Vector; /** * Расстояние, пройденное с момента предыдущего вызова функции */ delta: Vector; /** * Время начала жеста (timestamp) */ startTime: number; /** * Длительность жеста */ elapsedTime: number; /** * Признак начала жеста */ first: boolean; /** * Признак окончания жеста */ last: boolean; /** * Скорость движения пальца по каждой из осей */ velocity: Vector; /** * Исходный объект события */ event: TouchEvent; /** * Пользовательские данные */ data: T; } /** * Тип колбэка */ declare type StateChangeCallback<T> = (arg: Readonly<GestureState<T>>) => void; /** * Предоставляет унифицированный интерфейс для работы с * простыми тачевыми событиями (где используется один палец) */ export declare const useDrag: <T>(elementRef: RefObject<HTMLElement>, onStateChange: StateChangeCallback<T>) => void; export {};