@sheinx/hooks 3.2.4 → 3.2.5-beta.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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",