UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

71 lines (69 loc) 2.13 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 _classnames = _interopRequireDefault(require("classnames")); var _TableBodyRow = _interopRequireWildcard(require("./TableBodyRow")); var _reactVirtual = require("react-virtual"); const TableBody = /*#__PURE__*/_react.default.memo(({ table, tableContainerRef }) => { const { state: { rows, checkboxConfig }, rowConfig, cellConfig: { height }, virtual } = table; // 是否存在选中 const hasChecked = (0, _react.useMemo)(() => { return checkboxConfig.checkKeys.length; }, [checkboxConfig.checkKeys.length]); const { totalSize, virtualItems } = (0, _reactVirtual.useVirtual)({ size: rows.length, parentRef: tableContainerRef, estimateSize: _react.default.useCallback(() => height + rowConfig.gap, [height]), overscan: 2 }); const virScrollStyles = (0, _react.useMemo)(() => { return { height: `${totalSize - rowConfig.gap}px`, width: '100%', position: "relative" }; }, [totalSize]); return /*#__PURE__*/_react.default.createElement("div", { className: (0, _classnames.default)('lm_card_table_body', hasChecked && 'hasChecked') }, /*#__PURE__*/_react.default.createElement("div", { className: "lm_card_table_body_scroll", style: virScrollStyles }, virtual && rows.length > 10 ? virtualItems.map(({ index, start }) => /*#__PURE__*/_react.default.createElement(_TableBodyRow.LmCardTableBodyRowVirtual, { key: index, rowIndex: index, start: start, row: rows[index], table: table })) : rows.map((row, index) => /*#__PURE__*/_react.default.createElement(_TableBodyRow.default, { key: index, rowIndex: index, row: row, table: table })))); }); var _default = TableBody; exports.default = _default;