react-filerobot-video-editor
Version:
React component version of filerobot video editor (FVE).
1 lines • 1.58 kB
JavaScript
import{useMemo,useCallback}from"react";import{SELECT_ANNOTATION}from"../actions";import{TOOLS_IDS,TABS_IDS,WATERMARK_ANNOTATION_ID}from"../utils/constants";import isAnnotationTool from"../utils/isAnnotationTool";import useStore from"./useStore";import useSetAnnotation from"./useSetAnnotation";var useAnnotationEvents=function(){var a=useStore(),b=a.tabId,c=a.toolId,d=a.dispatch,e=a.config.keepAnnotationEventsEnabled,f=useSetAnnotation(),g=useMemo(function(){return!(void 0!==e&&e)&&b!==TABS_IDS.ANNOTATE&&b!==TABS_IDS.WATERMARK&&!isAnnotationTool(c)},[b,c]),h=useCallback(function(a){var b={id:a.target.id(),x:a.target.x(),y:a.target.y()};f(b)},[]),i=useCallback(function(a){var b={id:a.target.id(),rotation:a.target.rotation(),x:a.target.x(),y:a.target.y()};return a.target.name()===TOOLS_IDS.TEXT||a.target.name()===TOOLS_IDS.IMAGE?(b.width=a.target.width()*a.target.scaleX(),b.height=a.target.height()*a.target.scaleY(),b.scaleX=1,b.scaleY=1):(b.scaleX=a.target.scaleX(),b.scaleY=a.target.scaleY()),b},[]),j=useCallback(function(a){f(i(a))},[]),k=useCallback(function(a){(a.target.name()===TOOLS_IDS.TEXT||a.target.name()===TOOLS_IDS.IMAGE)&&a.target.setAttrs(i(a))}),l=useCallback(function(a){if(!(a.target.id()===WATERMARK_ANNOTATION_ID||a.target.getStage().attrs.isDrawing)){var b=a.evt.ctrlKey||a.evt.shiftKey||a.evt.metaKey;d({type:SELECT_ANNOTATION,payload:{annotationId:a.target.id(),toolId:a.target.name(),multiple:b}})}},[]);return useMemo(function(){return g?{}:{onTransform:k,onTransformEnd:j,onDragEnd:h,onClick:l,onTap:l}},[g])};export default useAnnotationEvents;