react-filerobot-video-editor
Version:
React component version of filerobot video editor (FVE).
1 lines • 1.49 kB
JavaScript
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState}from"react";import{ZOOM_CANVAS}from"../actions";import getZoomFitFactor from"../utils/getZoomFitFactor";import{DEFAULT_ZOOM_FACTOR,TOOLS_IDS}from"../utils/constants";import toPrecisedFloat from"../utils/toPrecisedFloat";import useStore from"./useStore";var MULTIPLY_ZOOM_FACTOR=1.1,useZoom=function(){var a=useStore(),b=a.dispatch,c=a.zoom,d=void 0===c?{}:c,e=a.toolId,f=a.feedback,g=a.shownImageDimensions,h=a.resize,i=a.originalSource,j=a.adjustments.crop,k=0===f.duration,l=useState(null),m=_slicedToArray(l,2),n=m[0],o=m[1],p=function(a,c,d){b({type:ZOOM_CANVAS,payload:{factor:a,isAbsoluteZoom:c,customLabel:d}})},q=function(){var a=h.width&&h.height&&h||j.width&&j.height&&j||g,b=getZoomFitFactor(j.width&&j.height&&j||g,a);p(b||DEFAULT_ZOOM_FACTOR,!0)},r=function(a){o(n||!a?null:a.target)},s=e===TOOLS_IDS.CROP||k;return{applyZoomFactorPreset:function(a,b){if("fit"===a)return q(),void r();var c=h.width||h.height?a:a/g.originalSourceInitialScale;p(c,!0,b),r()},getPreviewedZoomLevelLabel:function(){if(d.customLabel)return d.customLabel;var a=!i||h.width||h.height?d.factor:g.originalSourceInitialScale*d.factor;return"".concat(toPrecisedFloat(100*a,0)||"100","%")},isZoomDisabled:s,fitCanvas:q,zoomIn:function(){p(d.factor*MULTIPLY_ZOOM_FACTOR)},zoomOut:function(){p(d.factor/MULTIPLY_ZOOM_FACTOR)},saveZoom:p,toggleZoomingMenu:r,zoomingMenuAnchorEl:n,setZoomingMenuAnchorEl:o}};export default useZoom;