tdesign-react
Version:
TDesign Component for React
133 lines (127 loc) • 5.48 kB
JavaScript
/**
* 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