UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

106 lines (85 loc) 3.94 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _react = _interopRequireWildcard(require("react")); var _mobxReactLite = require("mobx-react-lite"); var _UnitConvertor = require("../../../lib/_util/UnitConvertor"); var _measureScrollbar = _interopRequireDefault(require("../../../lib/_util/measureScrollbar")); var _TableContext = _interopRequireDefault(require("./TableContext")); var _enum = require("./enum"); var TableBody = (0, _mobxReactLite.observer)(function TableBody(props) { var children = props.children, lock = props.lock, onScroll = props.onScroll, style = props.style, getRef = props.getRef; var _useContext = (0, _react.useContext)(_TableContext["default"]), prefixCls = _useContext.prefixCls, tableStore = _useContext.tableStore; var hasFooter = tableStore.hasFooter, overflowY = tableStore.overflowY, overflowX = tableStore.overflowX; // const saveRef = useCallback((node: HTMLDivElement | null) => { // const { getRef } = this.props; // if (getRef) { // getRef(node); // } // // this.element = node; // },[getRef]) // componentDidUpdate(): void { // const { element } = this; // if (element) { // const { scrollHeight, clientHeight } = element; // // Fixed vertical scrollbar not displayed in Chrome when scrollHeight - clientHeight < scrollbarHeight // if (scrollHeight > clientHeight && scrollHeight - clientHeight < measureScrollbar()) { // const { overflow } = element.style; // element.style.overflow = 'scroll'; // raf(() => { // element.style.overflow = overflow; // }); // } // } // } var getHeightStyle = function getHeightStyle() { if (!tableStore.customized.heightType) { var autoHeight = tableStore.autoHeight; if (autoHeight && autoHeight.type === _enum.TableAutoHeightType.maxHeight) { return undefined; } } return tableStore.height; }; var fixedLeft = lock === true || lock === _enum.ColumnLock.left; var scrollbar = (0, _measureScrollbar["default"])(); var hasFooterAndNotLock = !lock && hasFooter && overflowX && scrollbar; var height = getHeightStyle(); var hasLockAndNoFooter = lock && !hasFooter && overflowX && height !== undefined && scrollbar; var tableBody = _react["default"].createElement("div", { ref: getRef, className: "".concat(prefixCls, "-body"), style: (0, _objectSpread2["default"])({}, height === undefined ? style : {}, { height: (0, _UnitConvertor.pxToRem)(hasFooterAndNotLock && height !== undefined ? height + scrollbar : hasLockAndNoFooter && height !== undefined ? height - scrollbar : height), marginBottom: hasFooterAndNotLock ? (0, _UnitConvertor.pxToRem)(-scrollbar) : undefined, width: fixedLeft ? (0, _UnitConvertor.pxToRem)(tableStore.leftColumnGroups.width + (scrollbar || 20)) : lock === _enum.ColumnLock.right ? (0, _UnitConvertor.pxToRem)(tableStore.rightColumnGroups.width - 1 + (overflowY ? scrollbar : 0)) : undefined, marginLeft: lock === _enum.ColumnLock.right ? (0, _UnitConvertor.pxToRem)(1) : undefined }), onScroll: onScroll }, children); if (fixedLeft) { return _react["default"].createElement("div", { className: "".concat(prefixCls, "-body-wrapper"), style: { width: (0, _UnitConvertor.pxToRem)(tableStore.leftColumnGroups.width) } }, tableBody); } return tableBody; }); TableBody.displayName = 'TableBody'; var _default = TableBody; exports["default"] = _default; //# sourceMappingURL=TableBody.js.map