@sheinx/hooks 3.3.0-beta.11 → 3.3.0-beta.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA8CX,MAAM,UAAU,MAAM;;;;;;;;CA+N5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA8CX,MAAM,UAAU,MAAM;;;;;;;;CAgO5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -328,16 +328,17 @@ var useTableLayout = function useTableLayout(props) {
328
328
  (_cancelFunc = cancelFunc) === null || _cancelFunc === void 0 || _cancelFunc();
329
329
  };
330
330
  }, [scrollRef.current]);
331
- (0, _react.useEffect)(function () {
331
+ (0, _react.useLayoutEffect)(function () {
332
332
  if (adjust) {
333
333
  getColgroup(adjust === 'drag');
334
334
  setAdjust(false);
335
335
  } else {
336
336
  checkFloat();
337
- checkScroll();
337
+ // checkScroll();
338
338
  // 拖拽列会导致 scrollWidth 变化
339
339
  syncScrollWidth();
340
340
  }
341
+ checkScroll();
341
342
  }, [colgroup]);
342
343
  return {
343
344
  isScrollX: !!isScrollX,
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAIA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,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;CACjB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA6GpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BApEuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAgInB,MAAM;CAwDlD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAGA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,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;CACjB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA+GpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAtEuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAkInB,MAAM;CAmElD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _usePrevious = require("../.../../../common/use-previous");
8
7
  var _usePersistFn = require("../../common/use-persist-fn");
9
8
  var _react = require("react");
10
9
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -34,7 +33,6 @@ var useTableVirtual = function useTableVirtual(props) {
34
33
  _useState8 = _slicedToArray(_useState7, 2),
35
34
  startIndex = _useState8[0],
36
35
  setStartIndex = _useState8[1];
37
- var preIndex = (0, _usePrevious.usePrevious)(startIndex);
38
36
  var _useState9 = (0, _react.useState)(0),
39
37
  _useState10 = _slicedToArray(_useState9, 2),
40
38
  offsetY = _useState10[0],
@@ -47,7 +45,8 @@ var useTableVirtual = function useTableVirtual(props) {
47
45
  rateTimer: null,
48
46
  topTimer: null,
49
47
  controlScrollRate: null,
50
- heightCallback: null
48
+ heightCallback: null,
49
+ preIndex: null
51
50
  }),
52
51
  context = _useRef.current;
53
52
  var getTranslate = (0, _usePersistFn.usePersistFn)(function (left, top) {
@@ -80,6 +79,8 @@ var useTableVirtual = function useTableVirtual(props) {
80
79
  if (context.shouldUpdateHeight) {
81
80
  setHeight(getContentHeight(props.data.length - 1));
82
81
  }
82
+ var preIndex = context.preIndex;
83
+ // 解决: 从下往上滚 由于高度变化会导致滚动条跳动
83
84
  if (preIndex && preIndex > startIndex && startIndex === index) {
84
85
  // 发生在顶部
85
86
  if (context.heightCallback) return;
@@ -184,6 +185,16 @@ var useTableVirtual = function useTableVirtual(props) {
184
185
  props.scrollRef.current.scrollTop = beforeHeight;
185
186
  }
186
187
  });
188
+ (0, _react.useEffect)(function () {
189
+ // 记录preIndex
190
+ context.preIndex = startIndex;
191
+ }, [startIndex]);
192
+ (0, _react.useEffect)(function () {
193
+ // 数据变化的时候清空掉 preIndex, 如果之前有缓存的index, setRowHeight 会有问题
194
+ return function () {
195
+ context.preIndex = null;
196
+ };
197
+ }, [props.data]);
187
198
  (0, _react.useEffect)(function () {
188
199
  if (props.disabled) return;
189
200
  if (offsetY) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA8CX,MAAM,UAAU,MAAM;;;;;;;;CA+N5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA8CX,MAAM,UAAU,MAAM;;;;;;;;CAgO5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -14,7 +14,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
14
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
15
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- import React, { useEffect, useRef } from 'react';
17
+ import React, { useEffect, useRef, useLayoutEffect } from 'react';
18
18
  import useLatestObj from "../../common/use-latest-obj";
19
19
  import usePersistFn from "../../common/use-persist-fn";
20
20
  import usePrevious from "../../common/use-previous";
@@ -319,16 +319,17 @@ var useTableLayout = function useTableLayout(props) {
319
319
  (_cancelFunc = cancelFunc) === null || _cancelFunc === void 0 || _cancelFunc();
320
320
  };
321
321
  }, [scrollRef.current]);
322
- useEffect(function () {
322
+ useLayoutEffect(function () {
323
323
  if (adjust) {
324
324
  getColgroup(adjust === 'drag');
325
325
  setAdjust(false);
326
326
  } else {
327
327
  checkFloat();
328
- checkScroll();
328
+ // checkScroll();
329
329
  // 拖拽列会导致 scrollWidth 变化
330
330
  syncScrollWidth();
331
331
  }
332
+ checkScroll();
332
333
  }, [colgroup]);
333
334
  return {
334
335
  isScrollX: !!isScrollX,
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAIA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,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;CACjB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA6GpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BApEuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAgInB,MAAM;CAwDlD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAGA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,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;CACjB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBA+GpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAtEuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAkInB,MAAM;CAmElD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -8,7 +8,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
8
8
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
9
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
- import { usePrevious } from "../.../../../common/use-previous";
12
11
  import { usePersistFn } from "../../common/use-persist-fn";
13
12
  import { useState, useRef, useEffect } from 'react';
14
13
  var useTableVirtual = function useTableVirtual(props) {
@@ -28,7 +27,6 @@ var useTableVirtual = function useTableVirtual(props) {
28
27
  _useState8 = _slicedToArray(_useState7, 2),
29
28
  startIndex = _useState8[0],
30
29
  setStartIndex = _useState8[1];
31
- var preIndex = usePrevious(startIndex);
32
30
  var _useState9 = useState(0),
33
31
  _useState10 = _slicedToArray(_useState9, 2),
34
32
  offsetY = _useState10[0],
@@ -41,7 +39,8 @@ var useTableVirtual = function useTableVirtual(props) {
41
39
  rateTimer: null,
42
40
  topTimer: null,
43
41
  controlScrollRate: null,
44
- heightCallback: null
42
+ heightCallback: null,
43
+ preIndex: null
45
44
  }),
46
45
  context = _useRef.current;
47
46
  var getTranslate = usePersistFn(function (left, top) {
@@ -74,6 +73,8 @@ var useTableVirtual = function useTableVirtual(props) {
74
73
  if (context.shouldUpdateHeight) {
75
74
  setHeight(getContentHeight(props.data.length - 1));
76
75
  }
76
+ var preIndex = context.preIndex;
77
+ // 解决: 从下往上滚 由于高度变化会导致滚动条跳动
77
78
  if (preIndex && preIndex > startIndex && startIndex === index) {
78
79
  // 发生在顶部
79
80
  if (context.heightCallback) return;
@@ -178,6 +179,16 @@ var useTableVirtual = function useTableVirtual(props) {
178
179
  props.scrollRef.current.scrollTop = beforeHeight;
179
180
  }
180
181
  });
182
+ useEffect(function () {
183
+ // 记录preIndex
184
+ context.preIndex = startIndex;
185
+ }, [startIndex]);
186
+ useEffect(function () {
187
+ // 数据变化的时候清空掉 preIndex, 如果之前有缓存的index, setRowHeight 会有问题
188
+ return function () {
189
+ context.preIndex = null;
190
+ };
191
+ }, [props.data]);
181
192
  useEffect(function () {
182
193
  if (props.disabled) return;
183
194
  if (offsetY) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.3.0-beta.11",
3
+ "version": "3.3.0-beta.12",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",