UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

53 lines (49 loc) 1.32 kB
import { useCallback, useEffect, useMemo } from 'react'; import { getCroppedImg } from "../utils"; // 仅支持单个文件(多文件待扩展) var useCoreOptions = function useCoreOptions(_ref) { var state = _ref.state, dispatch = _ref.dispatch, props = _ref.props; var file = props.file; // 本地文件URL var imgURL = useMemo(function () { return file && window.URL.createObjectURL(file); }, [file]); // 设置transform参数 var setTransform = useCallback(function (obj) { dispatch({ type: 'changeResult', result: obj }); }, [dispatch]); // 获取裁剪后的图片 var getCropImageAsync = useCallback(function () { try { return getCroppedImg(imgURL, state.croppedAreaPixels, state.rotation); } catch (e) { console.error('getCropImageAsync图片获取失败!', e); return null; } }, [imgURL, state.croppedAreaPixels, state.rotation]); useEffect(function () { dispatch({ type: 'changeInit', init: { visible: !!file } }); }, [file]); var CoreMethds = { setTransform: setTransform, getCropImageAsync: getCropImageAsync }; var RefMethods = { imgURL: imgURL }; return { CoreMethds: CoreMethds, RefMethods: RefMethods }; }; export default useCoreOptions;