linkmore-design
Version:
🌈 🚀lm组件库。🚀
42 lines (39 loc) • 1.5 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
// 根文件 => 参数聚合
import React, { useMemo, useReducer, forwardRef, useImperativeHandle } from 'react';
import reducer, { initialState as initReducerState } from "./reducer";
import useCoreOptions from "../fns";
import LmUploadWrapper from "./UploadWrapper";
var LmUploadRoot = function LmUploadRoot(props, ref) {
var initialState = useMemo(function () {
return initReducerState(props);
}, []);
var _useReducer = useReducer(reducer, initialState),
_useReducer2 = _slicedToArray(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
// 获取核心Methods
var _useCoreOptions = useCoreOptions({
state: state,
dispatch: dispatch,
props: props
}),
CoreMethods = _useCoreOptions.CoreMethods,
RefMethods = _useCoreOptions.RefMethods;
// 组件实例
var instance = useMemo(function () {
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), CoreMethods), RefMethods), {}, {
state: state,
dispatch: dispatch
});
}, [props, CoreMethods, RefMethods, state, dispatch]);
// 向外暴露出的方法
useImperativeHandle(ref, function () {
return _objectSpread({}, RefMethods);
});
return /*#__PURE__*/React.createElement(LmUploadWrapper, {
instance: instance
});
};
export default /*#__PURE__*/forwardRef(LmUploadRoot);