parsec-hooks 1.0.8 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,4 @@
1
- import { Dispatch, SetStateAction } from 'react';
2
- declare const _default: <D extends unknown>(name: string, initState?: D) => [D, Dispatch<SetStateAction<D>>];
1
+ declare const _default: <D extends unknown>(name: string, initState?: D) => [D, (state: D) => void];
3
2
  /**
4
3
  * 在每个需要的地方使用传入,得到一个全局的状态,如:
5
4
  * const globalLoading = useGlobalState('globalLoading')
@@ -11,7 +11,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
 
12
12
  var _react = require("react");
13
13
 
14
- var useCount = 0;
15
14
  var globalObj = {};
16
15
  /**
17
16
  * 在每个需要的地方使用传入,得到一个全局的状态,如:
@@ -19,32 +18,30 @@ var globalObj = {};
19
18
  */
20
19
 
21
20
  var _default = function _default(name, initState) {
22
- var count = (0, _react.useRef)(useCount++);
21
+ var _globalObj$name;
23
22
 
24
- var _useState = (0, _react.useState)(initState),
23
+ var _useState = (0, _react.useState)(((_globalObj$name = globalObj[name]) === null || _globalObj$name === void 0 ? void 0 : _globalObj$name.state) || initState),
25
24
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
26
25
  globalState = _useState2[0],
27
26
  setGlobalState = _useState2[1];
28
27
 
29
28
  if (!globalObj[name]) {
30
- globalObj[name] = {};
29
+ globalObj[name] = {
30
+ state: globalState,
31
+ sets: []
32
+ };
31
33
  }
32
34
 
33
- if (!globalObj[name][count.current]) {
34
- globalObj[name][count.current] = {};
35
- }
36
-
37
- var current = globalObj[name][count.current];
38
- (0, _react.useEffect)(function () {
39
- current.setGlobalState = setGlobalState;
40
- current.globalState = globalState;
41
- Object.values(globalObj[name]).forEach(function (item) {
42
- if (item.globalState !== current.globalState) {
43
- item.setGlobalState(current.globalState);
44
- }
35
+ (0, _react.useLayoutEffect)(function () {
36
+ globalObj[name].sets.push(setGlobalState);
37
+ }, [name]);
38
+ return [globalState, function (state) {
39
+ globalObj[name].state = state;
40
+ setGlobalState(state);
41
+ globalObj[name].sets.forEach(function (fn) {
42
+ return fn(state);
45
43
  });
46
- }, [current, globalState, name]);
47
- return [globalState, setGlobalState];
44
+ }];
48
45
  };
49
46
 
50
47
  exports.default = _default;
@@ -5,14 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _wechat = require("remax-rn/src/wechat");
9
-
10
8
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
9
  // @ts-ignore
12
- var _default = function _default(pageName) {
13
- (0, _wechat.setNavigationBarTitle)({
14
- title: pageName
15
- });
10
+ // import { setNavigationBarTitle } from 'remax-rn/src/wechat';
11
+ var _default = function _default(pageName) {// setNavigationBarTitle({ title: pageName });
16
12
  };
17
13
 
18
14
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-hooks",
3
- "version": "1.0.8",
3
+ "version": "1.0.12",
4
4
  "description": "秒差距前端常用的hooks工具",
5
5
  "author": "mushan0x0",
6
6
  "license": "MIT",