framer-motion
Version:
An open source and production-ready motion library for React on the web
31 lines (28 loc) • 882 B
text/typescript
import { PanHandlers, usePanGesture } from "./use-pan-gesture"
import { TapHandlers, useTapGesture } from "./use-tap-gesture"
import { HoverHandlers, useHoverGesture } from "./use-hover-gesture"
import { FocusHandlers, useFocusGesture } from "./use-focus-gesture"
import { VisualElement } from "../render/types"
/**
* @public
*/
export type GestureHandlers = PanHandlers &
TapHandlers &
HoverHandlers &
FocusHandlers
/**
* Add pan and tap gesture recognition to an element.
*
* @param props - Gesture event handlers
* @param ref - React `ref` containing a DOM `Element`
* @public
*/
export function useGestures<GestureHandlers>(
props: GestureHandlers,
visualElement: VisualElement
) {
usePanGesture(props, visualElement)
useTapGesture(props, visualElement)
useHoverGesture(props, visualElement)
useFocusGesture(props, visualElement)
}