UNPKG

choerodon-ui

Version:

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

45 lines (39 loc) 1.53 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import React, { useContext, useEffect, useState } from 'react'; import { observer } from 'mobx-react-lite'; import { pxToRem } from '../../../es/_util/UnitConvertor'; import TableContext from './TableContext'; var VirtualWrapper = observer(function VirtualWrapper(props) { var _useContext = useContext(TableContext), tableStore = _useContext.tableStore, prefixCls = _useContext.prefixCls; var virtualTop = tableStore.virtualTop, virtualHeight = tableStore.virtualHeight; var _useState = useState(virtualHeight), _useState2 = _slicedToArray(_useState, 2), height = _useState2[0], setHeight = _useState2[1]; useEffect(function () { if (virtualHeight !== height) { var lastScrollTop = tableStore.lastScrollTop, tableBodyWrap = tableStore.node.tableBodyWrap; if (lastScrollTop && tableBodyWrap) { tableBodyWrap.scrollTop = Math.max(0, virtualHeight - height + lastScrollTop); } setHeight(virtualHeight); } }, [virtualHeight, height, tableStore]); return React.createElement("div", { className: "".concat(prefixCls, "-tbody-wrapper"), style: { height: pxToRem(virtualHeight) } }, React.createElement("div", { style: { transform: "translate(0, ".concat(pxToRem(virtualTop), ")") } }, props.children)); }); VirtualWrapper.displayName = 'VirtualWrapper'; export default VirtualWrapper; //# sourceMappingURL=VirtualWrapper.js.map