parsec-hooks 0.0.159 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/loadMoreHooks/index.d.ts +1 -2
- package/lib/loadMoreHooks/index.js +25 -24
- package/lib/utils/selectFiles/index.ali.d.ts +3 -0
- package/lib/utils/selectFiles/index.ali.js +23 -0
- package/lib/utils/selectFiles/index.d.ts +4 -0
- package/lib/utils/selectFiles/index.wechat.d.ts +1 -1
- package/lib/utils/selectFiles/index.wechat.js +4 -2
- package/lib/webLoadMoreHooks/index.d.ts +0 -1
- package/package.json +2 -2
@@ -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])
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
var _ali = require("remax/ali");
|
9
|
+
|
10
|
+
var _default = function _default(_ref) {
|
11
|
+
var accept = _ref.accept,
|
12
|
+
multiple = _ref.multiple,
|
13
|
+
sourceType = _ref.sourceType;
|
14
|
+
return (0, _ali.chooseImage)({
|
15
|
+
count: multiple ? 9 : 1,
|
16
|
+
sourceType: sourceType
|
17
|
+
}).then(function (_ref2) {
|
18
|
+
var apFilePaths = _ref2.apFilePaths;
|
19
|
+
return apFilePaths;
|
20
|
+
});
|
21
|
+
};
|
22
|
+
|
23
|
+
exports.default = _default;
|
@@ -8,6 +8,10 @@ export interface SelectFilesOption {
|
|
8
8
|
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
9
9
|
*/
|
10
10
|
accept?: string;
|
11
|
+
/**
|
12
|
+
* 只有小程序支持,选择图片的来源
|
13
|
+
*/
|
14
|
+
sourceType?: Array<'album' | 'camera'>;
|
11
15
|
}
|
12
16
|
declare const _default: ({ accept, multiple }: SelectFilesOption) => Promise<FileList>;
|
13
17
|
export default _default;
|
@@ -9,9 +9,11 @@ var _wechat = require("remax/wechat");
|
|
9
9
|
|
10
10
|
var _default = function _default(_ref) {
|
11
11
|
var accept = _ref.accept,
|
12
|
-
multiple = _ref.multiple
|
12
|
+
multiple = _ref.multiple,
|
13
|
+
sourceType = _ref.sourceType;
|
13
14
|
return (0, _wechat.chooseImage)({
|
14
|
-
count: multiple ? 9 : 1
|
15
|
+
count: multiple ? 9 : 1,
|
16
|
+
sourceType: sourceType
|
15
17
|
}).then(function (_ref2) {
|
16
18
|
var tempFilePaths = _ref2.tempFilePaths;
|
17
19
|
return tempFilePaths;
|
@@ -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": "1.0.0",
|
4
4
|
"description": "秒差距前端常用的hooks工具",
|
5
5
|
"author": "mushan0x0",
|
6
6
|
"license": "MIT",
|
@@ -54,7 +54,7 @@
|
|
54
54
|
"@babel/helper-call-delegate": "^7.10.3",
|
55
55
|
"@babel/plugin-syntax-typescript": "^7.10.4",
|
56
56
|
"@types/qs": "^6.9.3",
|
57
|
-
"@types/react": "^
|
57
|
+
"@types/react": "^17.0.38",
|
58
58
|
"@types/react-dom": "^16.0.5",
|
59
59
|
"@types/vfile-message": "^2.0.0",
|
60
60
|
"dayjs": "^1.8.21",
|