linkmore-design
Version:
🌈 🚀lm组件库。🚀
47 lines (42 loc) • 1.32 kB
JavaScript
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 _fns = _interopRequireDefault(require("../fns"));
var _reducer = _interopRequireWildcard(require("./reducer"));
var _Wrapper = _interopRequireDefault(require("./Wrapper"));
// 根文件 => 参数聚合
const LmFilterRoot = (props, ref) => {
const initialState = (0, _react.useMemo)(() => (0, _reducer.initialState)(), []);
const [state, dispatch] = (0, _react.useReducer)(_reducer.default, initialState);
// 获取核心Methods
const {
CoreMethods,
RefMethods
} = (0, _fns.default)({
state,
dispatch,
props
});
// 组件实例
const instance = {
...props,
...CoreMethods,
...RefMethods,
state,
dispatch
};
// 向外暴露出的方法
(0, _react.useImperativeHandle)(ref, () => ({
...RefMethods
}));
return /*#__PURE__*/_react.default.createElement(_Wrapper.default, {
instance: instance
});
};
var _default = /*#__PURE__*/(0, _react.forwardRef)(LmFilterRoot);
exports.default = _default;
;