parsec-hooks 0.0.161 → 1.0.1

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.
@@ -1,3 +1,3 @@
1
- import { ComponentType } from 'react';
1
+ import React, { ComponentType } from 'react';
2
2
  import { Container } from 'unstated-next';
3
- export default function <P, Value, State>(Container: Container<Value, State>, Component: ComponentType<P>): (props: P) => JSX.Element;
3
+ export default function <P, Value, State>(Container: Container<Value, State>, Component: ComponentType<P>): React.ForwardRefExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<unknown>>;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
@@ -7,12 +9,16 @@ Object.defineProperty(exports, "__esModule", {
7
9
  });
8
10
  exports.default = _default;
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
11
15
 
12
16
  function _default(Container, Component) {
13
- return function (props) {
17
+ return (0, _react.forwardRef)(function (props, ref) {
14
18
  return /*#__PURE__*/_react.default.createElement(Container.Provider, {
15
19
  initialState: props
16
- }, /*#__PURE__*/_react.default.createElement(Component, props));
17
- };
20
+ }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
21
+ ref: ref
22
+ })));
23
+ });
18
24
  }
@@ -7,7 +7,7 @@ export declare const PortalStore: import("./createContainer").Container<{
7
7
  addPortal: (portal: React.ReactElement) => number;
8
8
  removePortal: (id: number) => void;
9
9
  }, unknown>;
10
- declare const _default: (props: {
10
+ declare const _default: React.ForwardRefExoticComponent<{
11
11
  children: React.ReactNode;
12
- }) => JSX.Element;
12
+ } & React.RefAttributes<unknown>>;
13
13
  export default _default;
@@ -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,14 +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
 
24
22
  var _refStateHooks = _interopRequireDefault(require("../refStateHooks"));
25
23
 
24
+ var _previousHooks = _interopRequireDefault(require("../previousHooks"));
25
+
26
26
  function _default(getListFn, _ref) {
27
27
  var _ref$defaultLimit = _ref.defaultLimit,
28
28
  defaultLimit = _ref$defaultLimit === void 0 ? 10 : _ref$defaultLimit,
@@ -32,7 +32,6 @@ function _default(getListFn, _ref) {
32
32
  needGet = _ref$needGet === void 0 ? true : _ref$needGet,
33
33
  _ref$cacheKey = _ref.cacheKey,
34
34
  cacheKey = _ref$cacheKey === void 0 ? '' : _ref$cacheKey,
35
- customSetLoading = _ref.customSetLoading,
36
35
  loadMoreVisible = _ref.loadMoreVisible;
37
36
 
38
37
  var _useCacheState = (0, _cacheStateHooks.default)(getListFn.toString() + cacheKey, (0, _react.useMemo)(function () {
@@ -68,6 +67,7 @@ function _default(getListFn, _ref) {
68
67
 
69
68
  var loadingRef = (0, _react.useRef)(false);
70
69
  var countRef = (0, _react.useRef)(0);
70
+ var preVisible = (0, _previousHooks.default)(loadMoreVisible);
71
71
 
72
72
  var _usePromise = (0, _promiseHooks.default)((0, _react.useCallback)(function (retainList) {
73
73
  var _dataRef$current = dataRef.current,
@@ -101,11 +101,7 @@ function _default(getListFn, _ref) {
101
101
  return Promise.reject();
102
102
  }
103
103
  });
104
- }, [dataRef, defaultLimit, defaultPage, getListFn, setData]), {
105
- customSetLoading: customSetLoading ? (0, _react.useCallback)(function (loading) {
106
- loadingRef.current = loading;
107
- customSetLoading(loading);
108
- }, [customSetLoading]) : undefined,
104
+ }, [dataRef, defaultLimit, defaultPage, getListFn, setData, setIsEnd]), {
109
105
  needInit: false
110
106
  }),
111
107
  handleGetList = _usePromise.handle,
@@ -127,18 +123,18 @@ function _default(getListFn, _ref) {
127
123
 
128
124
  return handleGetList(retainList);
129
125
  }, [handleGetList, initData, needGet, setData]);
130
- var visibleRef = (0, _stateRefHooks.default)(loadMoreVisible);
131
126
  var getNext = (0, _react.useCallback)(function (callback) {
132
127
  if (!isEndRef.current && !loadingRef.current && needGet) {
133
128
  handleGetList().then(callback);
134
129
  }
135
130
  }, [handleGetList, isEndRef, loadingRef, needGet]);
131
+ var preVisibleRef = (0, _react.useRef)(preVisible);
136
132
  (0, _react.useEffect)(function () {
137
133
  if (needGet) {
138
134
  // 当handleGetList发生变化清空数据
139
135
  refreshList().then(function () {
140
136
  var fn = function fn() {
141
- if (visibleRef.current) {
137
+ if (preVisibleRef.current) {
142
138
  getNext(fn);
143
139
  }
144
140
  };
@@ -146,18 +142,17 @@ function _default(getListFn, _ref) {
146
142
  fn();
147
143
  });
148
144
  }
149
- }, [refreshList, handleGetList, needGet, visibleRef, getNext]);
145
+ }, [refreshList, handleGetList, needGet, preVisibleRef, getNext]);
150
146
  (0, _react.useEffect)(function () {
151
- if (loadMoreVisible) {
147
+ if (loadMoreVisible && preVisible !== loadMoreVisible) {
152
148
  getNext();
153
149
  }
154
- }, [getNext, loadMoreVisible]);
150
+ }, [getNext, loadMoreVisible, preVisible]);
155
151
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
156
152
  error: error,
157
153
  dataRef: dataRef,
158
154
  loading: loading,
159
155
  refreshList: refreshList,
160
- getNext: getNext,
161
156
  isEnd: (0, _react.useMemo)(function () {
162
157
  return isEnd || !data.list.length;
163
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.161",
3
+ "version": "1.0.1",
4
4
  "description": "秒差距前端常用的hooks工具",
5
5
  "author": "mushan0x0",
6
6
  "license": "MIT",