parsec-hooks 0.0.159 → 1.0.0

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.
@@ -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])
@@ -0,0 +1,3 @@
1
+ import { SelectFilesOption } from './index';
2
+ declare const _default: ({ accept, multiple, sourceType }: SelectFilesOption) => Promise<readonly string[]>;
3
+ export default _default;
@@ -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;
@@ -1,3 +1,3 @@
1
1
  import { SelectFilesOption } from './index';
2
- declare const _default: ({ accept, multiple }: SelectFilesOption) => Promise<string[]>;
2
+ declare const _default: ({ accept, multiple, sourceType }: SelectFilesOption) => Promise<string[]>;
3
3
  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.159",
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": "^16.3.13",
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",