@sheinx/hooks 3.2.4 → 3.2.5-beta.1

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.
@@ -28,7 +28,7 @@ declare const useButton: (props?: BaseButtonProps) => {
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
29
29
  } & TOther_1 & {
30
30
  disabled: boolean | undefined;
31
- htmlType: "button" | "reset" | "submit" | undefined;
31
+ htmlType: "button" | "submit" | "reset" | undefined;
32
32
  onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
33
33
  };
34
34
  getSpaceChildren: (children: React.ReactNode, space?: boolean, className?: string) => React.ReactNode;
@@ -4,7 +4,7 @@ declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: Us
4
4
  resultArr: (string | undefined)[];
5
5
  targetResultArr: (string | undefined)[];
6
6
  dateArr: (Date | undefined)[];
7
- disabledStatus: "all" | "left" | "right" | undefined;
7
+ disabledStatus: "left" | "right" | "all" | undefined;
8
8
  currentArr: Date[];
9
9
  mode: DatePickerModeType[];
10
10
  isEmpty: boolean;
@@ -10,7 +10,7 @@ declare const useImage: (props?: BaseImageProps) => {
10
10
  getRootProps: <TOther extends ObjectType = ObjectType>(externalProps?: TOther) => {
11
11
  [x: string]: (event: any) => void;
12
12
  } & TOther & {
13
- ref: React.RefObject<HTMLDivElement | HTMLAnchorElement>;
13
+ ref: React.RefObject<HTMLAnchorElement | HTMLDivElement>;
14
14
  onClick: (event: React.MouseEvent<HTMLImageElement | HTMLDivElement>) => void;
15
15
  };
16
16
  getImageProps: <TOther_1 extends ObjectType = ObjectType>(externalProps?: TOther_1) => {
@@ -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) {
@@ -28,7 +28,7 @@ declare const useButton: (props?: BaseButtonProps) => {
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
29
29
  } & TOther_1 & {
30
30
  disabled: boolean | undefined;
31
- htmlType: "button" | "reset" | "submit" | undefined;
31
+ htmlType: "button" | "submit" | "reset" | undefined;
32
32
  onClick: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
33
33
  };
34
34
  getSpaceChildren: (children: React.ReactNode, space?: boolean, className?: string) => React.ReactNode;
@@ -4,7 +4,7 @@ declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: Us
4
4
  resultArr: (string | undefined)[];
5
5
  targetResultArr: (string | undefined)[];
6
6
  dateArr: (Date | undefined)[];
7
- disabledStatus: "all" | "left" | "right" | undefined;
7
+ disabledStatus: "left" | "right" | "all" | undefined;
8
8
  currentArr: Date[];
9
9
  mode: DatePickerModeType[];
10
10
  isEmpty: boolean;
@@ -10,7 +10,7 @@ declare const useImage: (props?: BaseImageProps) => {
10
10
  getRootProps: <TOther extends ObjectType = ObjectType>(externalProps?: TOther) => {
11
11
  [x: string]: (event: any) => void;
12
12
  } & TOther & {
13
- ref: React.RefObject<HTMLDivElement | HTMLAnchorElement>;
13
+ ref: React.RefObject<HTMLAnchorElement | HTMLDivElement>;
14
14
  onClick: (event: React.MouseEvent<HTMLImageElement | HTMLDivElement>) => void;
15
15
  };
16
16
  getImageProps: <TOther_1 extends ObjectType = ObjectType>(externalProps?: TOther_1) => {
@@ -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.2.4",
3
+ "version": "3.2.5-beta.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",