UNPKG

choerodon-ui

Version:

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

62 lines (47 loc) 2.06 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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _mobxReactLite = require("mobx-react-lite"); var _UnitConvertor = require("../../../lib/_util/UnitConvertor"); var _TableContext = _interopRequireDefault(require("./TableContext")); var VirtualWrapper = (0, _mobxReactLite.observer)(function VirtualWrapper(props) { var _useContext = (0, _react.useContext)(_TableContext["default"]), tableStore = _useContext.tableStore, prefixCls = _useContext.prefixCls; var virtualTop = tableStore.virtualTop, virtualHeight = tableStore.virtualHeight; var _useState = (0, _react.useState)(virtualHeight), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), height = _useState2[0], setHeight = _useState2[1]; (0, _react.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["default"].createElement("div", { className: "".concat(prefixCls, "-tbody-wrapper"), style: { height: (0, _UnitConvertor.pxToRem)(virtualHeight) } }, _react["default"].createElement("div", { style: { transform: "translate(0, ".concat((0, _UnitConvertor.pxToRem)(virtualTop), ")") } }, props.children)); }); VirtualWrapper.displayName = 'VirtualWrapper'; var _default = VirtualWrapper; exports["default"] = _default; //# sourceMappingURL=VirtualWrapper.js.map