UNPKG

@chief-editor/editor

Version:

FlowEditor Editor

1 lines 840 B
import{useCallback}from"react";import{Vector}from"@co-hooks/vector";import{useRefCallback,useRefGetter}from"@rc-hooks/use";import{useEditor}from"./useEditor";export function useDraggerMask(r){var t=r.onDragStart,a=r.onDragging,o=r.onDragEnd,e=r.ratio,n=useRefCallback(t),c=useRefCallback(a),l=useRefCallback(o),s=useEditor(),u=useRefGetter(e);return{onDragStart:n,onDragging:useCallback((function(r){c(calcDragTransformData(r,s.getZoom(),u()))}),[]),onDragEnd:useCallback((function(r){l(calcDragTransformData(r,s.getZoom(),u()))}),[])}}function calcDragTransformData(r,t,a){var o=r.data,e=r.startMousePos,n=r.currentMousePos;return t/=100,{offset:new Vector([(n.clientX-e.clientX)/t,(n.clientY-e.clientY)/t]),rotate:(null==o?void 0:o.rotate)||0,direct:null==o?void 0:o.direct,isRotate:null!=(null==o?void 0:o.rotate),ratio:!!r.shiftKey||a}}