UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

46 lines (42 loc) 1.37 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _reducer = _interopRequireWildcard(require("./reducer")); var _fns = _interopRequireDefault(require("../fns")); var _Wrapper = _interopRequireDefault(require("./Wrapper")); const LmBox = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => { const initialState = (0, _react.useMemo)(() => (0, _reducer.initialState)(), []); const [state, dispatch] = (0, _react.useReducer)(_reducer.default, initialState); // 获取核心Methods const { CoreMethds, RefMethods } = (0, _fns.default)({ state, dispatch, props }); // 组件实例 const instance = (0, _react.useMemo)(() => ({ ...props, ...CoreMethds, ...RefMethods, state, dispatch }), [props, RefMethods, state, dispatch]); // 向外暴露出的方法 (0, _react.useImperativeHandle)(ref, () => ({ getState: () => state, ...RefMethods })); return /*#__PURE__*/_react.default.createElement(_Wrapper.default, { instance: instance }); }); var _default = LmBox; exports.default = _default;