linkmore-design
Version:
🌈 🚀lm组件库。🚀
60 lines (56 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _utils = require("../utils");
// 仅支持单个文件(多文件待扩展)
const useCoreOptions = ({
state,
dispatch,
props
}) => {
const {
file
} = props;
// 本地文件URL
const imgURL = (0, _react.useMemo)(() => file && window.URL.createObjectURL(file), [file]);
// 设置transform参数
const setTransform = (0, _react.useCallback)(obj => {
dispatch({
type: 'changeResult',
result: obj
});
}, [dispatch]);
// 获取裁剪后的图片
const getCropImageAsync = (0, _react.useCallback)(() => {
try {
return (0, _utils.getCroppedImg)(imgURL, state.croppedAreaPixels, state.rotation);
} catch (e) {
console.error('getCropImageAsync图片获取失败!', e);
return null;
}
}, [imgURL, state.croppedAreaPixels, state.rotation]);
(0, _react.useEffect)(() => {
dispatch({
type: 'changeInit',
init: {
visible: !!file
}
});
}, [file]);
const CoreMethds = {
setTransform,
getCropImageAsync
};
const RefMethods = {
imgURL
};
return {
CoreMethds,
RefMethods
};
};
var _default = useCoreOptions;
exports.default = _default;