@sheinx/hooks 3.9.15-beta.4 → 3.9.15-beta.5

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.
@@ -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;CACvD;AAED,QAAA,MAAM,uBAAuB,UAAW,4BAA4B;;;;CA6FnE,CAAC;AAEF,eAAe,uBAAuB,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
- scrollTop = rawScrollTop;
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
- scrollTop = rawScrollTop - props.theadHeight;
60
- if (scrollTop < 0) scrollTop = 0;
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;;;;;;oBAoNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BArHuB,MAAM,UAAU,MAAM;2BAwJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;;;;;CA8HnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
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
- if (context.shouldUpdateHeight) {
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;CACvD;AAED,QAAA,MAAM,uBAAuB,UAAW,4BAA4B;;;;CA6FnE,CAAC;AAEF,eAAe,uBAAuB,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
- scrollTop = rawScrollTop;
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
- scrollTop = rawScrollTop - props.theadHeight;
54
- if (scrollTop < 0) scrollTop = 0;
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;;;;;;oBAoNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BArHuB,MAAM,UAAU,MAAM;2BAwJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;;;;;CA8HnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
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
- if (context.shouldUpdateHeight) {
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.9.15-beta.4",
3
+ "version": "3.9.15-beta.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",