UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

44 lines (42 loc) 1.49 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import React, { useMemo, useRef, useReducer, forwardRef, useImperativeHandle } from 'react'; import reducer, { initialState as initReducerState } from "./reducer"; import useCoreOptions from "../fns"; import Wrapper from "./Wrapper"; var Root = /*#__PURE__*/forwardRef(function (props, ref) { var bodyRef = useRef(null); 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, bodyRef: bodyRef }), CoreMethods = _useCoreOptions.CoreMethods, RefMethods = _useCoreOptions.RefMethods; var instance = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), CoreMethods), RefMethods), {}, { bodyRef: bodyRef, state: state, dispatch: dispatch }); // 向外暴露出的方法 useImperativeHandle(ref, function () { return _objectSpread(_objectSpread({}, RefMethods), {}, { getState: function getState() { return state; } }); }); return /*#__PURE__*/React.createElement(Wrapper, { instance: instance }); }); export default Root;