@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 527 B
JavaScript
import{useCallback as t,useRef as d}from"react";export const useDragGesture=({onDragStart:n,onDragMove:c,onDragEnd:r})=>{const e=d(!1),s=t(u=>{e.current=!0,n(u.touches[0].clientY)},[n]),o=t(u=>{e.current&&c(u.touches[0].clientY)},[c]),l=t(()=>{e.current&&(e.current=!1,r())},[r]),h=t(u=>{e.current=!0,n(u.clientY)},[n]),i=t(u=>{e.current&&c(u.clientY)},[c]),f=t(()=>{e.current&&(e.current=!1,r())},[r]);return{touchHandlers:{onTouchStart:s,onTouchMove:o,onTouchEnd:l},mouseHandlers:{onMouseDown:h,onMouseMove:i,onMouseUp:f}}};