UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

57 lines (55 loc) • 1.76 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _context = require("./context"); var _useForkRef = _interopRequireDefault(require("../hooks/useForkRef")); const VirtualRow = /*#__PURE__*/_react.default.memo(({ children, pref, ...resetProps }, ref) => { const { state, dispatch } = (0, _context.useStore)(); const { rowHeight, totalLen } = state; const trRef = (0, _react.useRef)(null); // 列长度 const columnsLen = (0, _react.useMemo)(() => { return children?.length ?? 0; }, [children]); (0, _react.useEffect)(() => { if (state.columnsLen !== columnsLen) { dispatch({ type: 'changeColumnsLen', columnsLen: columnsLen ?? 0 }); } }, [columnsLen, dispatch, state.columnsLen]); (0, _react.useEffect)(() => { const initHeight = tempRef => { if (tempRef?.current?.offsetHeight && !rowHeight && totalLen) { const tempRowHeight = tempRef?.current?.offsetHeight ?? 0; dispatch({ type: 'initHeight', rowHeight: tempRowHeight }); } }; initHeight(trRef); }, [trRef, dispatch, rowHeight, totalLen, ref]); return /*#__PURE__*/_react.default.createElement("tr", (0, _extends2.default)({}, resetProps, { ref: (0, _useForkRef.default)(pref, trRef) }), children); }); var _default = VirtualRow; exports.default = _default;