UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

42 lines (39 loc) 1.5 kB
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);