UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

49 lines (48 loc) β€’ 1.76 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _context = require("./context"); const VirtualWrapper = /*#__PURE__*/_react.default.memo(wrapperProps => { const { children, ...resetProps } = wrapperProps; const { state, dispatch, instance } = (0, _context.useStore)(); const { rowVirtual: { virtualItems = [], totalSize } } = instance; const contents = (0, _react.useMemo)(() => children[1], [children]); const contentsLen = (0, _react.useMemo)(() => contents?.length ?? 0, [contents]); (0, _react.useEffect)(() => { if (state.totalLen !== contentsLen) { dispatch({ type: 'changeTotalLen', totalLen: contentsLen ?? 0 }); } }, [contentsLen, dispatch, state.totalLen]); const paddingTop = virtualItems?.length > 0 ? virtualItems?.[0]?.start || 0 : 0; const paddingBottom = virtualItems?.length > 0 ? totalSize - (virtualItems?.[virtualItems?.length - 1]?.end || 0) : 0; return /*#__PURE__*/_react.default.createElement("tbody", resetProps, paddingTop > 0 && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", { style: { height: `${paddingTop}px` } })), children[0], virtualItems?.map(virtualRow => contents[virtualRow.index]), paddingBottom > 0 && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", { style: { height: `${paddingBottom}px` } }))); }); var _default = VirtualWrapper; exports.default = _default;