parsec-hooks 0.0.158 → 0.0.162

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,7 +17,7 @@ export interface LoadMoreOptions {
17
17
  */
18
18
  customSetLoading?: (loading: boolean) => void;
19
19
  }
20
- export default function <D>(getListFn: LoadMoreGetListFn<D>, { defaultLimit, defaultPage, needGet, cacheKey, customSetLoading, loadMoreVisible }: LoadMoreOptions): {
20
+ export default function <D>(getListFn: LoadMoreGetListFn<D>, { defaultLimit, defaultPage, needGet, cacheKey, loadMoreVisible }: LoadMoreOptions): {
21
21
  error: any;
22
22
  dataRef: {
23
23
  current: {
@@ -28,7 +28,6 @@ export default function <D>(getListFn: LoadMoreGetListFn<D>, { defaultLimit, def
28
28
  };
29
29
  loading: boolean;
30
30
  refreshList: (retainList?: boolean) => Promise<void>;
31
- getNext: (callback?: () => void) => void;
32
31
  isEnd: boolean;
33
32
  page: number;
34
33
  limit: number;
@@ -15,12 +15,14 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
15
15
 
16
16
  var _react = require("react");
17
17
 
18
- var _stateRefHooks = _interopRequireDefault(require("../stateRefHooks"));
19
-
20
18
  var _promiseHooks = _interopRequireDefault(require("../promiseHooks"));
21
19
 
22
20
  var _cacheStateHooks = _interopRequireDefault(require("../cacheStateHooks"));
23
21
 
22
+ var _refStateHooks = _interopRequireDefault(require("../refStateHooks"));
23
+
24
+ var _previousHooks = _interopRequireDefault(require("../previousHooks"));
25
+
24
26
  function _default(getListFn, _ref) {
25
27
  var _ref$defaultLimit = _ref.defaultLimit,
26
28
  defaultLimit = _ref$defaultLimit === void 0 ? 10 : _ref$defaultLimit,
@@ -30,7 +32,6 @@ function _default(getListFn, _ref) {
30
32
  needGet = _ref$needGet === void 0 ? true : _ref$needGet,
31
33
  _ref$cacheKey = _ref.cacheKey,
32
34
  cacheKey = _ref$cacheKey === void 0 ? '' : _ref$cacheKey,
33
- customSetLoading = _ref.customSetLoading,
34
35
  loadMoreVisible = _ref.loadMoreVisible;
35
36
 
36
37
  var _useCacheState = (0, _cacheStateHooks.default)(getListFn.toString() + cacheKey, (0, _react.useMemo)(function () {
@@ -53,18 +54,20 @@ function _default(getListFn, _ref) {
53
54
  };
54
55
  }, [defaultPage, defaultLimit, dataRef]);
55
56
 
56
- var _useState = (0, _react.useState)(false),
57
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
- isEnd = _useState2[0],
59
- setIsEnd = _useState2[1];
57
+ var _useRefState = (0, _refStateHooks.default)(false),
58
+ _useRefState2 = (0, _slicedToArray2.default)(_useRefState, 3),
59
+ isEnd = _useRefState2[0],
60
+ setIsEnd = _useRefState2[1],
61
+ isEndRef = _useRefState2[2];
60
62
 
61
- var _useState3 = (0, _react.useState)(),
62
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
63
- error = _useState4[0],
64
- setError = _useState4[1];
63
+ var _useState = (0, _react.useState)(),
64
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
65
+ error = _useState2[0],
66
+ setError = _useState2[1];
65
67
 
66
68
  var loadingRef = (0, _react.useRef)(false);
67
69
  var countRef = (0, _react.useRef)(0);
70
+ var preVisible = (0, _previousHooks.default)(loadMoreVisible);
68
71
 
69
72
  var _usePromise = (0, _promiseHooks.default)((0, _react.useCallback)(function (retainList) {
70
73
  var _dataRef$current = dataRef.current,
@@ -98,11 +101,7 @@ function _default(getListFn, _ref) {
98
101
  return Promise.reject();
99
102
  }
100
103
  });
101
- }, [dataRef, defaultLimit, defaultPage, getListFn, setData]), {
102
- customSetLoading: customSetLoading ? (0, _react.useCallback)(function (loading) {
103
- loadingRef.current = loading;
104
- customSetLoading(loading);
105
- }, [customSetLoading]) : undefined,
104
+ }, [dataRef, defaultLimit, defaultPage, getListFn, setData, setIsEnd]), {
106
105
  needInit: false
107
106
  }),
108
107
  handleGetList = _usePromise.handle,
@@ -114,25 +113,28 @@ function _default(getListFn, _ref) {
114
113
 
115
114
 
116
115
  var refreshList = (0, _react.useCallback)(function (retainList) {
116
+ if (!needGet) {
117
+ return;
118
+ }
119
+
117
120
  if (!retainList) {
118
121
  setData(initData);
119
122
  }
120
123
 
121
124
  return handleGetList(retainList);
122
- }, [handleGetList, initData, setData]);
123
- var visibleRef = (0, _stateRefHooks.default)(loadMoreVisible);
124
- var isEndRef = (0, _stateRefHooks.default)(isEnd);
125
+ }, [handleGetList, initData, needGet, setData]);
125
126
  var getNext = (0, _react.useCallback)(function (callback) {
126
127
  if (!isEndRef.current && !loadingRef.current && needGet) {
127
128
  handleGetList().then(callback);
128
129
  }
129
130
  }, [handleGetList, isEndRef, loadingRef, needGet]);
131
+ var preVisibleRef = (0, _react.useRef)(preVisible);
130
132
  (0, _react.useEffect)(function () {
131
133
  if (needGet) {
132
134
  // 当handleGetList发生变化清空数据
133
135
  refreshList().then(function () {
134
136
  var fn = function fn() {
135
- if (visibleRef.current) {
137
+ if (preVisibleRef.current) {
136
138
  getNext(fn);
137
139
  }
138
140
  };
@@ -140,18 +142,17 @@ function _default(getListFn, _ref) {
140
142
  fn();
141
143
  });
142
144
  }
143
- }, [refreshList, handleGetList, needGet, visibleRef, getNext]);
145
+ }, [refreshList, handleGetList, needGet, preVisibleRef, getNext]);
144
146
  (0, _react.useEffect)(function () {
145
- if (loadMoreVisible) {
147
+ if (loadMoreVisible && preVisible !== loadMoreVisible) {
146
148
  getNext();
147
149
  }
148
- }, [getNext, loadMoreVisible]);
150
+ }, [getNext, loadMoreVisible, preVisible]);
149
151
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
150
152
  error: error,
151
153
  dataRef: dataRef,
152
154
  loading: loading,
153
155
  refreshList: refreshList,
154
- getNext: getNext,
155
156
  isEnd: (0, _react.useMemo)(function () {
156
157
  return isEnd || !data.list.length;
157
158
  }, [isEnd, data])
@@ -11,7 +11,6 @@ declare const _default: <D extends unknown>(getList: LoadMoreGetListFn<D>, optio
11
11
  };
12
12
  loading: boolean;
13
13
  refreshList: (retainList?: boolean) => Promise<void>;
14
- getNext: (callback?: () => void) => void;
15
14
  isEnd: boolean;
16
15
  page: number;
17
16
  limit: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-hooks",
3
- "version": "0.0.158",
3
+ "version": "0.0.162",
4
4
  "description": "秒差距前端常用的hooks工具",
5
5
  "author": "mushan0x0",
6
6
  "license": "MIT",
@@ -36,28 +36,28 @@
36
36
  "@babel/runtime": "^7.10.3",
37
37
  "classnames": "^2.2.6",
38
38
  "crypto-js": "^4.0.0",
39
- "dayjs": "^1.8.21",
40
39
  "import-cdn-js": "^0.0.2",
41
40
  "intersection-observer": "^0.8.0",
42
41
  "qs": "^6.9.4",
43
- "rc-field-form": "^1.2.0",
44
- "remax": "^2.11.4",
45
42
  "resize-observer-polyfill": "^1.5.1",
46
43
  "unstated-next": "^1.1.0"
47
44
  },
48
45
  "peerDependencies": {
46
+ "dayjs": "^1.8.0",
49
47
  "prop-types": "^15.5.4",
48
+ "rc-field-form": "^1.2.0",
50
49
  "react": "^15.0.0 || ^16.0.0",
51
50
  "react-dom": "^15.0.0 || ^16.0.0",
52
- "remax": "^2.11.4"
51
+ "remax": "^2.0.0"
53
52
  },
54
53
  "devDependencies": {
55
54
  "@babel/helper-call-delegate": "^7.10.3",
56
55
  "@babel/plugin-syntax-typescript": "^7.10.4",
57
56
  "@types/qs": "^6.9.3",
58
- "@types/react": "^16.3.13",
57
+ "@types/react": "^17.0.38",
59
58
  "@types/react-dom": "^16.0.5",
60
59
  "@types/vfile-message": "^2.0.0",
60
+ "dayjs": "^1.8.21",
61
61
  "dumi": "^1.0.34",
62
62
  "eslint": "^6.8.0",
63
63
  "eslint-config-prettier": "^6.10.0",
@@ -75,8 +75,10 @@
75
75
  "np": "^6.2.4",
76
76
  "prettier": "^1.19.1",
77
77
  "pretty-quick": "^2.0.1",
78
+ "rc-field-form": "^1.2.0",
78
79
  "react": "^16.4.1",
79
80
  "react-dom": "^16.4.1",
81
+ "remax": "^2.11.4",
80
82
  "typescript": "^3.9.5"
81
83
  },
82
84
  "files": [