UNPKG

tdesign-react

Version:
133 lines (127 loc) 5.48 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var hooks_useEventCallback = require('../../hooks/useEventCallback.js'); var hooks_useVirtualScroll = require('../../hooks/useVirtualScroll.js'); require('../../_util/noop.js'); require('../../_chunks/dep-5cb0d66d.js'); require('../../_chunks/dep-737b8bd8.js'); require('../../_chunks/dep-1b7ce2a3.js'); require('../../_chunks/dep-625279d1.js'); require('../../_chunks/dep-474eb386.js'); require('../../_chunks/dep-3b256bc0.js'); require('../../_chunks/dep-4ce0670e.js'); require('../../_chunks/dep-b325182b.js'); require('../../_chunks/dep-3448f35f.js'); require('../../_chunks/dep-b6a3ada9.js'); require('../../_chunks/dep-967e785f.js'); require('../../_chunks/dep-5c8525ea.js'); require('../../_chunks/dep-735cd5b9.js'); require('../../_chunks/dep-bdafd287.js'); require('../../_chunks/dep-4d300b8f.js'); require('../../_chunks/dep-3332ad6f.js'); require('../../_chunks/dep-98783318.js'); require('../../_chunks/dep-fc884a8e.js'); require('../../_chunks/dep-4f4b2eb1.js'); require('../../_chunks/dep-e018b522.js'); require('../../_chunks/dep-7f4d0687.js'); require('../../_chunks/dep-b23d5e45.js'); function useTreeVirtualScroll(_ref) { var treeRef = _ref.treeRef, scroll = _ref.scroll, _ref$data = _ref.data, data = _ref$data === void 0 ? [] : _ref$data, onScroll = _ref.onScroll; var scrollThreshold = (scroll === null || scroll === void 0 ? void 0 : scroll.threshold) || 100; var scrollType = scroll === null || scroll === void 0 ? void 0 : scroll.type; var enableVirtual = React.useMemo(function () { return scrollType === "virtual"; }, [scrollType]); var isVirtual = React.useMemo(function () { return enableVirtual && (data === null || data === void 0 ? void 0 : data.length) > scrollThreshold; }, [enableVirtual, scrollThreshold, data]); var scrollParams = React.useMemo(function () { return { type: "virtual", isFixedRowHeight: (scroll === null || scroll === void 0 ? void 0 : scroll.isFixedRowHeight) || false, rowHeight: (scroll === null || scroll === void 0 ? void 0 : scroll.rowHeight) || 34, bufferSize: (scroll === null || scroll === void 0 ? void 0 : scroll.bufferSize) || 20, threshold: scrollThreshold }; }, [scroll, scrollThreshold]); var _useVirtualScroll = hooks_useVirtualScroll["default"](treeRef, { enable: enableVirtual, data: data || [], scroll: scrollParams }), _useVirtualScroll$vis = _useVirtualScroll.visibleData, visibleData = _useVirtualScroll$vis === void 0 ? null : _useVirtualScroll$vis, _useVirtualScroll$han = _useVirtualScroll.handleScroll, handleVirtualScroll = _useVirtualScroll$han === void 0 ? null : _useVirtualScroll$han, _useVirtualScroll$scr = _useVirtualScroll.scrollHeight, scrollHeight = _useVirtualScroll$scr === void 0 ? null : _useVirtualScroll$scr, _useVirtualScroll$tra = _useVirtualScroll.translateY, translateY = _useVirtualScroll$tra === void 0 ? null : _useVirtualScroll$tra, _useVirtualScroll$han2 = _useVirtualScroll.handleRowMounted, handleRowMounted = _useVirtualScroll$han2 === void 0 ? null : _useVirtualScroll$han2, scrollToElement = _useVirtualScroll.scrollToElement; var lastScrollY = -1; var onInnerVirtualScroll = hooks_useEventCallback["default"](function (e) { onScroll === null || onScroll === void 0 || onScroll({ e: e }); if (!isVirtual) { return; } var target = e.target; var top = target.scrollTop; if (lastScrollY !== top) { handleVirtualScroll(); } else { lastScrollY = -1; } lastScrollY = top; }); React.useEffect(function () { var _treeList$addEventLis; var treeList = treeRef === null || treeRef === void 0 ? void 0 : treeRef.current; treeList === null || treeList === void 0 || (_treeList$addEventLis = treeList.addEventListener) === null || _treeList$addEventLis === void 0 || _treeList$addEventLis.call(treeList, "scroll", onInnerVirtualScroll); return function () { var _treeList$removeEvent; treeList === null || treeList === void 0 || (_treeList$removeEvent = treeList.removeEventListener) === null || _treeList$removeEvent === void 0 || _treeList$removeEvent.call(treeList, "scroll", onInnerVirtualScroll); }; }, [treeRef, onInnerVirtualScroll]); var cursorStyle = { position: "absolute", width: "1px", height: "1px", transition: "transform 0.2s", transform: "translate(0, ".concat(scrollHeight, "px)"), MsTransform: "translate(0, ".concat(scrollHeight, "px)"), MozTransform: "translate(0, ".concat(scrollHeight, "px)"), WebkitTransform: "translate(0, ".concat(scrollHeight, "px)") }; var treeNodeStyle = { transform: "translate(0, ".concat(translateY, "px)"), MsTransform: "translate(0, ".concat(translateY, "px)"), MozTransform: "translate(0, ".concat(translateY, "px)"), WebkitTransform: "translate(0, ".concat(translateY, "px)") }; return { scrollHeight: scrollHeight, translateY: translateY, visibleData: visibleData, handleRowMounted: handleRowMounted, isVirtual: isVirtual, cursorStyle: cursorStyle, treeNodeStyle: treeNodeStyle, scrollToElement: scrollToElement }; } exports["default"] = useTreeVirtualScroll; //# sourceMappingURL=useTreeVirtualScroll.js.map