@sheinx/hooks 3.9.15-beta.4 → 3.9.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/use-table/use-table-virtual-external.d.ts +2 -0
- package/cjs/components/use-table/use-table-virtual-external.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual-external.js +56 -3
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +6 -2
- package/esm/components/use-table/use-table-virtual-external.d.ts +2 -0
- package/esm/components/use-table/use-table-virtual-external.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual-external.js +56 -3
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +6 -2
- package/package.json +1 -1
|
@@ -9,6 +9,8 @@ interface UseTableVirtualExternalProps {
|
|
|
9
9
|
tableRef?: React.RefObject<HTMLDivElement>;
|
|
10
10
|
getContentHeight: (index: number) => number;
|
|
11
11
|
updateIndexAndTopFromTop: (scrollTop: number) => void;
|
|
12
|
+
scrollHeight: number;
|
|
13
|
+
setScrollHeight: (height: number) => void;
|
|
12
14
|
}
|
|
13
15
|
declare const useTableVirtualExternal: (props: UseTableVirtualExternalProps) => {
|
|
14
16
|
externalStickyRef: import("react").RefObject<HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-virtual-external.d.ts","sourceRoot":"","sources":["use-table-virtual-external.tsx"],"names":[],"mappings":";AAGA,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"use-table-virtual-external.d.ts","sourceRoot":"","sources":["use-table-virtual-external.tsx"],"names":[],"mappings":";AAGA,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,QAAA,MAAM,uBAAuB,UAAW,4BAA4B;;;;CAkJnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -20,6 +20,7 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
20
20
|
var externalStickyRef = (0, _react.useRef)(null);
|
|
21
21
|
var tableOffsetRef = (0, _react.useRef)(0);
|
|
22
22
|
var stickyCompensationTimer = (0, _react.useRef)(null);
|
|
23
|
+
var heightSyncTimer = (0, _react.useRef)(null);
|
|
23
24
|
var handleExternalScroll = (0, _usePersistFn.usePersistFn)(function () {
|
|
24
25
|
var _props$tableRef, _externalStickyRef$cu;
|
|
25
26
|
if (props.disabled) return;
|
|
@@ -45,19 +46,42 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
45
46
|
if (rawScrollTop < 0) rawScrollTop = 0;
|
|
46
47
|
var sumHeight = props.getContentHeight(props.dataLength - 1);
|
|
47
48
|
var viewportHeight = ((_externalStickyRef$cu = externalStickyRef.current) === null || _externalStickyRef$cu === void 0 ? void 0 : _externalStickyRef$cu.clientHeight) || container.clientHeight;
|
|
49
|
+
|
|
50
|
+
// 物理可滚动范围:基于当前外层 div 高度(滚动中不变)
|
|
51
|
+
var physicalMax = props.scrollHeight - viewportHeight;
|
|
52
|
+
|
|
53
|
+
// 滚动停止后才同步外层 div 高度,防止滚动中 div 变高导致滑块倒退
|
|
54
|
+
if (sumHeight !== props.scrollHeight) {
|
|
55
|
+
if (heightSyncTimer.current) clearTimeout(heightSyncTimer.current);
|
|
56
|
+
heightSyncTimer.current = setTimeout(function () {
|
|
57
|
+
props.setScrollHeight(sumHeight);
|
|
58
|
+
}, 200);
|
|
59
|
+
}
|
|
48
60
|
var scrollTop;
|
|
49
61
|
var max;
|
|
50
62
|
if (props.externalStickyHeader) {
|
|
51
63
|
max = sumHeight - props.tfootHeight - viewportHeight;
|
|
52
|
-
|
|
64
|
+
if (physicalMax > 0 && max > 0) {
|
|
65
|
+
var rate = Math.min(rawScrollTop / physicalMax, 1);
|
|
66
|
+
scrollTop = rate * max;
|
|
67
|
+
} else {
|
|
68
|
+
scrollTop = rawScrollTop;
|
|
69
|
+
}
|
|
53
70
|
} else {
|
|
54
71
|
var newHeaderOffset = Math.min(rawScrollTop, props.theadHeight);
|
|
55
72
|
if (newHeaderOffset !== headerOffset) {
|
|
56
73
|
setHeaderOffset(newHeaderOffset);
|
|
57
74
|
}
|
|
58
75
|
max = sumHeight - props.theadHeight - props.tfootHeight - viewportHeight;
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
var adjustedRaw = rawScrollTop - props.theadHeight;
|
|
77
|
+
var physicalMaxBody = physicalMax - props.theadHeight;
|
|
78
|
+
if (physicalMaxBody > 0 && max > 0) {
|
|
79
|
+
var _rate = Math.min(Math.max(adjustedRaw, 0) / physicalMaxBody, 1);
|
|
80
|
+
scrollTop = _rate * max;
|
|
81
|
+
} else {
|
|
82
|
+
scrollTop = adjustedRaw;
|
|
83
|
+
if (scrollTop < 0) scrollTop = 0;
|
|
84
|
+
}
|
|
61
85
|
}
|
|
62
86
|
if (max > 0 && scrollTop > max) {
|
|
63
87
|
scrollTop = max;
|
|
@@ -92,8 +116,37 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
92
116
|
handleExternalScroll();
|
|
93
117
|
return function () {
|
|
94
118
|
scrollTarget.removeEventListener('scroll', handleExternalScroll);
|
|
119
|
+
if (heightSyncTimer.current) clearTimeout(heightSyncTimer.current);
|
|
95
120
|
};
|
|
96
121
|
}, [props.disabled, props.dataLength]);
|
|
122
|
+
|
|
123
|
+
// 动态控制 overflowX:当 table 仅因亚像素舍入比容器宽 1px 时隐藏滚动条,
|
|
124
|
+
// 容器真正变小(如 resize)需要横滚时恢复 auto
|
|
125
|
+
(0, _react.useEffect)(function () {
|
|
126
|
+
var stickyEl = externalStickyRef.current;
|
|
127
|
+
if (!stickyEl) return;
|
|
128
|
+
var checkOverflowX = function checkOverflowX() {
|
|
129
|
+
var overflow = stickyEl.scrollWidth - stickyEl.clientWidth;
|
|
130
|
+
var next = overflow <= 1 ? 'hidden' : 'auto';
|
|
131
|
+
if (stickyEl.style.overflowX !== next) {
|
|
132
|
+
stickyEl.style.overflowX = next;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
checkOverflowX();
|
|
136
|
+
var ro = new ResizeObserver(checkOverflowX);
|
|
137
|
+
ro.observe(stickyEl);
|
|
138
|
+
var mo = new MutationObserver(checkOverflowX);
|
|
139
|
+
mo.observe(stickyEl, {
|
|
140
|
+
childList: true,
|
|
141
|
+
subtree: true,
|
|
142
|
+
attributes: true,
|
|
143
|
+
attributeFilter: ['style']
|
|
144
|
+
});
|
|
145
|
+
return function () {
|
|
146
|
+
ro.disconnect();
|
|
147
|
+
mo.disconnect();
|
|
148
|
+
};
|
|
149
|
+
}, [props.disabled]);
|
|
97
150
|
return {
|
|
98
151
|
externalStickyRef: externalStickyRef,
|
|
99
152
|
headerOffset: headerOffset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;
|
|
1
|
+
{"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAqNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAtHuB,MAAM,UAAU,MAAM;2BAyJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;;;;;CAgInE,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -153,7 +153,9 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
|
153
153
|
var beforeHeight = context.cachedHeight[index];
|
|
154
154
|
if (beforeHeight && beforeHeight === height) return;
|
|
155
155
|
context.cachedHeight[index] = height;
|
|
156
|
-
|
|
156
|
+
|
|
157
|
+
// 外部滚动模式下不由 setRowHeight 更新高度,由 handleExternalScroll debounce 同步
|
|
158
|
+
if (context.shouldUpdateHeight && !props.virtualScrollContainer) {
|
|
157
159
|
setHeight(getContentHeight(props.data.length - 1));
|
|
158
160
|
}
|
|
159
161
|
var preIndex = context.preIndex;
|
|
@@ -420,7 +422,9 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
|
420
422
|
},
|
|
421
423
|
tableRef: props.tableRef,
|
|
422
424
|
getContentHeight: getContentHeight,
|
|
423
|
-
updateIndexAndTopFromTop: updateIndexAndTopFromTop
|
|
425
|
+
updateIndexAndTopFromTop: updateIndexAndTopFromTop,
|
|
426
|
+
scrollHeight: scrollHeight,
|
|
427
|
+
setScrollHeight: setHeight
|
|
424
428
|
});
|
|
425
429
|
return {
|
|
426
430
|
scrollHeight: scrollHeight,
|
|
@@ -9,6 +9,8 @@ interface UseTableVirtualExternalProps {
|
|
|
9
9
|
tableRef?: React.RefObject<HTMLDivElement>;
|
|
10
10
|
getContentHeight: (index: number) => number;
|
|
11
11
|
updateIndexAndTopFromTop: (scrollTop: number) => void;
|
|
12
|
+
scrollHeight: number;
|
|
13
|
+
setScrollHeight: (height: number) => void;
|
|
12
14
|
}
|
|
13
15
|
declare const useTableVirtualExternal: (props: UseTableVirtualExternalProps) => {
|
|
14
16
|
externalStickyRef: import("react").RefObject<HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-virtual-external.d.ts","sourceRoot":"","sources":["use-table-virtual-external.tsx"],"names":[],"mappings":";AAGA,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"use-table-virtual-external.d.ts","sourceRoot":"","sources":["use-table-virtual-external.tsx"],"names":[],"mappings":";AAGA,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,QAAA,MAAM,uBAAuB,UAAW,4BAA4B;;;;CAkJnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -14,6 +14,7 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
14
14
|
var externalStickyRef = useRef(null);
|
|
15
15
|
var tableOffsetRef = useRef(0);
|
|
16
16
|
var stickyCompensationTimer = useRef(null);
|
|
17
|
+
var heightSyncTimer = useRef(null);
|
|
17
18
|
var handleExternalScroll = usePersistFn(function () {
|
|
18
19
|
var _props$tableRef, _externalStickyRef$cu;
|
|
19
20
|
if (props.disabled) return;
|
|
@@ -39,19 +40,42 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
39
40
|
if (rawScrollTop < 0) rawScrollTop = 0;
|
|
40
41
|
var sumHeight = props.getContentHeight(props.dataLength - 1);
|
|
41
42
|
var viewportHeight = ((_externalStickyRef$cu = externalStickyRef.current) === null || _externalStickyRef$cu === void 0 ? void 0 : _externalStickyRef$cu.clientHeight) || container.clientHeight;
|
|
43
|
+
|
|
44
|
+
// 物理可滚动范围:基于当前外层 div 高度(滚动中不变)
|
|
45
|
+
var physicalMax = props.scrollHeight - viewportHeight;
|
|
46
|
+
|
|
47
|
+
// 滚动停止后才同步外层 div 高度,防止滚动中 div 变高导致滑块倒退
|
|
48
|
+
if (sumHeight !== props.scrollHeight) {
|
|
49
|
+
if (heightSyncTimer.current) clearTimeout(heightSyncTimer.current);
|
|
50
|
+
heightSyncTimer.current = setTimeout(function () {
|
|
51
|
+
props.setScrollHeight(sumHeight);
|
|
52
|
+
}, 200);
|
|
53
|
+
}
|
|
42
54
|
var scrollTop;
|
|
43
55
|
var max;
|
|
44
56
|
if (props.externalStickyHeader) {
|
|
45
57
|
max = sumHeight - props.tfootHeight - viewportHeight;
|
|
46
|
-
|
|
58
|
+
if (physicalMax > 0 && max > 0) {
|
|
59
|
+
var rate = Math.min(rawScrollTop / physicalMax, 1);
|
|
60
|
+
scrollTop = rate * max;
|
|
61
|
+
} else {
|
|
62
|
+
scrollTop = rawScrollTop;
|
|
63
|
+
}
|
|
47
64
|
} else {
|
|
48
65
|
var newHeaderOffset = Math.min(rawScrollTop, props.theadHeight);
|
|
49
66
|
if (newHeaderOffset !== headerOffset) {
|
|
50
67
|
setHeaderOffset(newHeaderOffset);
|
|
51
68
|
}
|
|
52
69
|
max = sumHeight - props.theadHeight - props.tfootHeight - viewportHeight;
|
|
53
|
-
|
|
54
|
-
|
|
70
|
+
var adjustedRaw = rawScrollTop - props.theadHeight;
|
|
71
|
+
var physicalMaxBody = physicalMax - props.theadHeight;
|
|
72
|
+
if (physicalMaxBody > 0 && max > 0) {
|
|
73
|
+
var _rate = Math.min(Math.max(adjustedRaw, 0) / physicalMaxBody, 1);
|
|
74
|
+
scrollTop = _rate * max;
|
|
75
|
+
} else {
|
|
76
|
+
scrollTop = adjustedRaw;
|
|
77
|
+
if (scrollTop < 0) scrollTop = 0;
|
|
78
|
+
}
|
|
55
79
|
}
|
|
56
80
|
if (max > 0 && scrollTop > max) {
|
|
57
81
|
scrollTop = max;
|
|
@@ -86,8 +110,37 @@ var useTableVirtualExternal = function useTableVirtualExternal(props) {
|
|
|
86
110
|
handleExternalScroll();
|
|
87
111
|
return function () {
|
|
88
112
|
scrollTarget.removeEventListener('scroll', handleExternalScroll);
|
|
113
|
+
if (heightSyncTimer.current) clearTimeout(heightSyncTimer.current);
|
|
89
114
|
};
|
|
90
115
|
}, [props.disabled, props.dataLength]);
|
|
116
|
+
|
|
117
|
+
// 动态控制 overflowX:当 table 仅因亚像素舍入比容器宽 1px 时隐藏滚动条,
|
|
118
|
+
// 容器真正变小(如 resize)需要横滚时恢复 auto
|
|
119
|
+
useEffect(function () {
|
|
120
|
+
var stickyEl = externalStickyRef.current;
|
|
121
|
+
if (!stickyEl) return;
|
|
122
|
+
var checkOverflowX = function checkOverflowX() {
|
|
123
|
+
var overflow = stickyEl.scrollWidth - stickyEl.clientWidth;
|
|
124
|
+
var next = overflow <= 1 ? 'hidden' : 'auto';
|
|
125
|
+
if (stickyEl.style.overflowX !== next) {
|
|
126
|
+
stickyEl.style.overflowX = next;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
checkOverflowX();
|
|
130
|
+
var ro = new ResizeObserver(checkOverflowX);
|
|
131
|
+
ro.observe(stickyEl);
|
|
132
|
+
var mo = new MutationObserver(checkOverflowX);
|
|
133
|
+
mo.observe(stickyEl, {
|
|
134
|
+
childList: true,
|
|
135
|
+
subtree: true,
|
|
136
|
+
attributes: true,
|
|
137
|
+
attributeFilter: ['style']
|
|
138
|
+
});
|
|
139
|
+
return function () {
|
|
140
|
+
ro.disconnect();
|
|
141
|
+
mo.disconnect();
|
|
142
|
+
};
|
|
143
|
+
}, [props.disabled]);
|
|
91
144
|
return {
|
|
92
145
|
externalStickyRef: externalStickyRef,
|
|
93
146
|
headerOffset: headerOffset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;
|
|
1
|
+
{"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAqNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAtHuB,MAAM,UAAU,MAAM;2BAyJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;;;;;CAgInE,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -147,7 +147,9 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
|
147
147
|
var beforeHeight = context.cachedHeight[index];
|
|
148
148
|
if (beforeHeight && beforeHeight === height) return;
|
|
149
149
|
context.cachedHeight[index] = height;
|
|
150
|
-
|
|
150
|
+
|
|
151
|
+
// 外部滚动模式下不由 setRowHeight 更新高度,由 handleExternalScroll debounce 同步
|
|
152
|
+
if (context.shouldUpdateHeight && !props.virtualScrollContainer) {
|
|
151
153
|
setHeight(getContentHeight(props.data.length - 1));
|
|
152
154
|
}
|
|
153
155
|
var preIndex = context.preIndex;
|
|
@@ -414,7 +416,9 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
|
414
416
|
},
|
|
415
417
|
tableRef: props.tableRef,
|
|
416
418
|
getContentHeight: getContentHeight,
|
|
417
|
-
updateIndexAndTopFromTop: updateIndexAndTopFromTop
|
|
419
|
+
updateIndexAndTopFromTop: updateIndexAndTopFromTop,
|
|
420
|
+
scrollHeight: scrollHeight,
|
|
421
|
+
setScrollHeight: setHeight
|
|
418
422
|
});
|
|
419
423
|
return {
|
|
420
424
|
scrollHeight: scrollHeight,
|