linkmore-design
Version:
🌈 🚀lm组件库。🚀
43 lines (40 loc) • 1.49 kB
JavaScript
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 LmImageViewerWrapper from "./Wrapper";
var LmImageViewerRoot = function LmImageViewerRoot(props, ref) {
var previewRef = 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,
previewRef: previewRef
}),
CoreMethods = _useCoreOptions.CoreMethods,
RefMethods = _useCoreOptions.RefMethods;
// 组件实例
var instance = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), CoreMethods), RefMethods), {}, {
previewRef: previewRef,
state: state,
dispatch: dispatch
});
// 向外暴露出的方法
useImperativeHandle(ref, function () {
return {};
});
return /*#__PURE__*/React.createElement(LmImageViewerWrapper, {
instance: instance
});
};
export default /*#__PURE__*/forwardRef(LmImageViewerRoot);