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,
|
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
|
57
|
-
|
58
|
-
isEnd =
|
59
|
-
setIsEnd =
|
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
|
62
|
-
|
63
|
-
error =
|
64
|
-
setError =
|
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 (
|
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,
|
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.
|
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.
|
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": "^
|
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": [
|