mobx-react-use-autorun 3.1.31 → 4.0.2

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.
package/README.md CHANGED
@@ -128,31 +128,26 @@ Provide a method to generate state, the state is executed only once, and the per
128
128
  </div>
129
129
  })
130
130
 
131
- ### Lifecycle hooks
131
+ ### Lifecycle hook with useMount
132
132
 
133
133
  useMount is a lifecycle hook that calls a function after the component is mounted.<br/>
134
- useUnmount is a lifecycle hook that calls a function when the component will unmount.<br/>
134
+ It provides a subscription as a parameter, which will be unsubscribed when the component will unmount.<br/>
135
135
 
136
- import { Subscription, of, tap } from 'rxjs'
136
+ It support Strict Mode.<br/>
137
+ Strict Mode: In the future, React will provide a feature that lets components preserve state between unmounts. To prepare for it, React 18 introduces a new development-only check to Strict Mode. React will automatically unmount and remount every component, whenever a component mounts for the first time, restoring the previous state on the second mount. If this breaks your app, consider removing Strict Mode until you can fix the components to be resilient to remounting with existing state.<br/>
138
+
139
+ import { Subscription } from 'rxjs'
137
140
  import { useMobxState, observer } from 'mobx-react-use-autorun'
138
- import { useMount, useUnmount } from 'mobx-react-use-autorun'
141
+ import { useMount } from 'mobx-react-use-autorun'
139
142
 
140
143
  export default observer(() => {
141
144
 
142
- const state = useMobxState({
143
- subscription: new Subscription()
144
- })
145
-
146
- useMount(() => {
147
- state.subscription.add(of(null).pipe(
148
- tap(() => {
149
- console.log('component is loaded')
150
- })
151
- ).subscribe())
152
- })
145
+ useMount((subscription) => {
146
+ console.log('component is loaded')
153
147
 
154
- useUnmount(() => {
155
- state.subscription.unsubscribe()
148
+ subscription.add(new Subscription(() => {
149
+ console.log("component will unmount")
150
+ }))
156
151
  })
157
152
 
158
153
  return null;
@@ -1,9 +1,9 @@
1
- import './js/mobx_config';
2
- import { toJS, observable, makeAutoObservable } from 'mobx';
3
- import { observer } from 'mobx-react-lite';
4
- import { useMobxEffect } from './js/useMobxEffect';
5
- import { useMobxState } from './js/useMobxState';
6
- import { useMount, useUnmount } from 'react-use';
7
- export { toJS, observable, observer, makeAutoObservable };
8
- export { useMobxState, useMobxEffect };
9
- export { useMount, useUnmount };
1
+ import './js/mobx_config';
2
+ import { toJS, observable, makeAutoObservable } from 'mobx';
3
+ import { observer } from 'mobx-react-lite';
4
+ import { useMobxEffect } from './js/useMobxEffect';
5
+ import { useMobxState } from './js/useMobxState';
6
+ import { useMount } from './js/useMount';
7
+ export { toJS, observable, observer, makeAutoObservable };
8
+ export { useMobxState, useMobxEffect };
9
+ export { useMount };
package/dist/cjs/index.js CHANGED
@@ -1,18 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useUnmount = exports.useMount = exports.useMobxEffect = exports.useMobxState = exports.makeAutoObservable = exports.observer = exports.observable = exports.toJS = void 0;
4
- require("./js/mobx_config");
5
- var mobx_1 = require("mobx");
6
- Object.defineProperty(exports, "toJS", { enumerable: true, get: function () { return mobx_1.toJS; } });
7
- Object.defineProperty(exports, "observable", { enumerable: true, get: function () { return mobx_1.observable; } });
8
- Object.defineProperty(exports, "makeAutoObservable", { enumerable: true, get: function () { return mobx_1.makeAutoObservable; } });
9
- var mobx_react_lite_1 = require("mobx-react-lite");
10
- Object.defineProperty(exports, "observer", { enumerable: true, get: function () { return mobx_react_lite_1.observer; } });
11
- var useMobxEffect_1 = require("./js/useMobxEffect");
12
- Object.defineProperty(exports, "useMobxEffect", { enumerable: true, get: function () { return useMobxEffect_1.useMobxEffect; } });
13
- var useMobxState_1 = require("./js/useMobxState");
14
- Object.defineProperty(exports, "useMobxState", { enumerable: true, get: function () { return useMobxState_1.useMobxState; } });
15
- var react_use_1 = require("react-use");
16
- Object.defineProperty(exports, "useMount", { enumerable: true, get: function () { return react_use_1.useMount; } });
17
- Object.defineProperty(exports, "useUnmount", { enumerable: true, get: function () { return react_use_1.useUnmount; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMount = exports.useMobxEffect = exports.useMobxState = exports.makeAutoObservable = exports.observer = exports.observable = exports.toJS = void 0;
4
+ require("./js/mobx_config");
5
+ var mobx_1 = require("mobx");
6
+ Object.defineProperty(exports, "toJS", { enumerable: true, get: function () { return mobx_1.toJS; } });
7
+ Object.defineProperty(exports, "observable", { enumerable: true, get: function () { return mobx_1.observable; } });
8
+ Object.defineProperty(exports, "makeAutoObservable", { enumerable: true, get: function () { return mobx_1.makeAutoObservable; } });
9
+ var mobx_react_lite_1 = require("mobx-react-lite");
10
+ Object.defineProperty(exports, "observer", { enumerable: true, get: function () { return mobx_react_lite_1.observer; } });
11
+ var useMobxEffect_1 = require("./js/useMobxEffect");
12
+ Object.defineProperty(exports, "useMobxEffect", { enumerable: true, get: function () { return useMobxEffect_1.useMobxEffect; } });
13
+ var useMobxState_1 = require("./js/useMobxState");
14
+ Object.defineProperty(exports, "useMobxState", { enumerable: true, get: function () { return useMobxState_1.useMobxState; } });
15
+ var useMount_1 = require("./js/useMount");
16
+ Object.defineProperty(exports, "useMount", { enumerable: true, get: function () { return useMount_1.useMount; } });
18
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.tsx"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,6BAA4D;AAMnD,qFANA,WAAI,OAMA;AAAE,2FANA,iBAAU,OAMA;AAAY,mGANV,yBAAkB,OAMU;AALvD,mDAA2C;AAKhB,yFALlB,0BAAQ,OAKkB;AAJnC,oDAAmD;AAK5B,8FALd,6BAAa,OAKc;AAJpC,kDAAiD;AAIxC,6FAJA,2BAAY,OAIA;AAHrB,uCAAiD;AAIxC,yFAJA,oBAAQ,OAIA;AAAE,2FAJA,sBAAU,OAIA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.tsx"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,6BAA4D;AAMnD,qFANA,WAAI,OAMA;AAAE,2FANA,iBAAU,OAMA;AAAY,mGANV,yBAAkB,OAMU;AALvD,mDAA2C;AAKhB,yFALlB,0BAAQ,OAKkB;AAJnC,oDAAmD;AAK5B,8FALd,6BAAa,OAKc;AAJpC,kDAAiD;AAIxC,6FAJA,2BAAY,OAIA;AAHrB,0CAAyC;AAIhC,yFAJA,mBAAQ,OAIA"}
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,7 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mobx_1 = require("mobx");
4
- (0, mobx_1.configure)({
5
- enforceActions: 'never'
6
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var mobx_1 = require("mobx");
4
+ (0, mobx_1.configure)({
5
+ enforceActions: 'never'
6
+ });
7
7
  //# sourceMappingURL=mobx_config.js.map
@@ -1 +1 @@
1
- export declare const useMobxEffect: (callback: () => void, dependencyList?: any[]) => void;
1
+ export declare const useMobxEffect: (callback: () => void, dependencyList?: any[]) => void;
@@ -1,32 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMobxEffect = void 0;
4
- var react_use_1 = require("react-use");
5
- var rxjs_1 = require("rxjs");
6
- var mobx_1 = require("mobx");
7
- var useMobxState_1 = require("./useMobxState");
8
- var react_1 = require("react");
9
- var useMobxEffect = function (callback, dependencyList) {
10
- var state = (0, useMobxState_1.useMobxState)({
11
- subscription: new rxjs_1.Subscription(),
12
- }, { callback: callback });
13
- var source = (0, useMobxState_1.useMobxState)({}, Object.assign({}, dependencyList));
14
- (0, react_1.useEffect)(function () {
15
- if (!dependencyList) {
16
- callback();
17
- }
18
- });
19
- (0, react_use_1.useMount)(function () {
20
- if (dependencyList) {
21
- var disposer_1 = (0, mobx_1.reaction)(function () { return [(0, mobx_1.toJS)(source)]; }, function () { return state.callback(); }, { fireImmediately: true, delay: 1 });
22
- state.subscription.add(new rxjs_1.Subscription(function () {
23
- disposer_1();
24
- }));
25
- }
26
- });
27
- (0, react_use_1.useUnmount)(function () {
28
- state.subscription.unsubscribe();
29
- });
30
- };
31
- exports.useMobxEffect = useMobxEffect;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMobxEffect = void 0;
4
+ var useMount_1 = require("./useMount");
5
+ var rxjs_1 = require("rxjs");
6
+ var mobx_1 = require("mobx");
7
+ var useMobxState_1 = require("./useMobxState");
8
+ var react_1 = require("react");
9
+ var useMobxEffect = function (callback, dependencyList) {
10
+ var state = (0, useMobxState_1.useMobxState)({}, { callback: callback });
11
+ var source = (0, useMobxState_1.useMobxState)({}, Object.assign({}, dependencyList));
12
+ (0, react_1.useEffect)(function () {
13
+ if (!dependencyList) {
14
+ callback();
15
+ }
16
+ });
17
+ (0, useMount_1.useMount)(function (subscription) {
18
+ if (dependencyList) {
19
+ var disposer_1 = (0, mobx_1.reaction)(function () { return [(0, mobx_1.toJS)(source)]; }, function () { return state.callback(); }, { fireImmediately: true, delay: 1 });
20
+ subscription.add(new rxjs_1.Subscription(function () {
21
+ disposer_1();
22
+ }));
23
+ }
24
+ });
25
+ };
26
+ exports.useMobxEffect = useMobxEffect;
32
27
  //# sourceMappingURL=useMobxEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":";;;AAAA,uCAAiD;AACjD,6BAAoC;AACpC,6BAAqC;AACrC,+CAA8C;AAC9C,+BAAkC;AAE3B,IAAM,aAAa,GAAG,UAAC,QAAoB,EAAE,cAAsB;IAExE,IAAM,KAAK,GAAG,IAAA,2BAAY,EAAC;QACzB,YAAY,EAAE,IAAI,mBAAY,EAAE;KACjC,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;IAEhB,IAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,cAAc,EAAE;YACnB,QAAQ,EAAE,CAAA;SACX;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,oBAAQ,EAAC;QACP,IAAI,cAAc,EAAE;YAClB,IAAM,UAAQ,GAAG,IAAA,eAAQ,EAAC,cAAM,OAAA,CAAC,IAAA,WAAI,EAAC,MAAM,CAAC,CAAC,EAAd,CAAc,EAAE,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,EAAhB,CAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAE7G,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,mBAAY,CAAC;gBACtC,UAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,sBAAU,EAAC;QACT,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA3BY,QAAA,aAAa,iBA2BzB"}
1
+ {"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":";;;AAAA,uCAAsC;AACtC,6BAAoC;AACpC,6BAAqC;AACrC,+CAA8C;AAC9C,+BAAkC;AAE3B,IAAM,aAAa,GAAG,UAAC,QAAoB,EAAE,cAAsB;IAExE,IAAM,KAAK,GAAG,IAAA,2BAAY,EAAC,EAC1B,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;IAEhB,IAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,cAAc,EAAE;YACnB,QAAQ,EAAE,CAAA;SACX;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,mBAAQ,EAAC,UAAC,YAAY;QACpB,IAAI,cAAc,EAAE;YAClB,IAAM,UAAQ,GAAG,IAAA,eAAQ,EAAC,cAAM,OAAA,CAAC,IAAA,WAAI,EAAC,MAAM,CAAC,CAAC,EAAd,CAAc,EAAE,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,EAAhB,CAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAE7G,YAAY,CAAC,GAAG,CAAC,IAAI,mBAAY,CAAC;gBAChC,UAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAvBY,QAAA,aAAa,iBAuBzB"}
@@ -1,2 +1,2 @@
1
- export declare function useMobxState<T extends Record<any, any>>(state: T | (() => T)): T;
2
- export declare function useMobxState<T extends Record<any, any>, P extends Record<any, any>>(state: T | (() => T), props: P): T & P;
1
+ export declare function useMobxState<T extends Record<any, any>>(state: T | (() => T)): T;
2
+ export declare function useMobxState<T extends Record<any, any>, P extends Record<any, any>>(state: T | (() => T), props: P): T & P;
@@ -1,40 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMobxState = void 0;
4
- var mobx_1 = require("mobx");
5
- var mobx_react_lite_1 = require("mobx-react-lite");
6
- var react_1 = require("react");
7
- function useMobxState(state, props) {
8
- var mobxState = (0, mobx_react_lite_1.useLocalObservable)(typeof state === "function" ? state : function () { return state; });
9
- var keyListOfState = (0, react_1.useRef)([]);
10
- (0, mobx_1.runInAction)(function () {
11
- var _a, _b;
12
- var _c;
13
- if (props) {
14
- for (var _i = 0, _d = keyListOfState.current; _i < _d.length; _i++) {
15
- var key = _d[_i];
16
- if (!Object.keys(props).includes(key)) {
17
- (0, mobx_1.remove)(mobxState, key);
18
- }
19
- }
20
- for (var key in props) {
21
- if ((0, mobx_1.isObservable)(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
22
- Object.defineProperty(mobxState, key, Object.getOwnPropertyDescriptor(props, key));
23
- }
24
- else {
25
- if (props[key] !== mobxState[key]) {
26
- (0, mobx_1.remove)(mobxState, key);
27
- (0, mobx_1.extendObservable)(mobxState, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
28
- }
29
- }
30
- }
31
- keyListOfState.current.splice(0, keyListOfState.current.length);
32
- for (var key in props) {
33
- keyListOfState.current.push(key);
34
- }
35
- }
36
- });
37
- return mobxState;
38
- }
39
- exports.useMobxState = useMobxState;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMobxState = void 0;
4
+ var mobx_1 = require("mobx");
5
+ var mobx_react_lite_1 = require("mobx-react-lite");
6
+ var react_1 = require("react");
7
+ function useMobxState(state, props) {
8
+ var mobxState = (0, mobx_react_lite_1.useLocalObservable)(typeof state === "function" ? state : function () { return state; });
9
+ var keyListOfState = (0, react_1.useRef)([]);
10
+ (0, mobx_1.runInAction)(function () {
11
+ var _a, _b;
12
+ var _c;
13
+ if (props) {
14
+ for (var _i = 0, _d = keyListOfState.current; _i < _d.length; _i++) {
15
+ var key = _d[_i];
16
+ if (!Object.keys(props).includes(key)) {
17
+ (0, mobx_1.remove)(mobxState, key);
18
+ }
19
+ }
20
+ for (var key in props) {
21
+ if ((0, mobx_1.isObservable)(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
22
+ Object.defineProperty(mobxState, key, Object.getOwnPropertyDescriptor(props, key));
23
+ }
24
+ else {
25
+ if (props[key] !== mobxState[key]) {
26
+ (0, mobx_1.remove)(mobxState, key);
27
+ (0, mobx_1.extendObservable)(mobxState, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
28
+ }
29
+ }
30
+ }
31
+ keyListOfState.current.splice(0, keyListOfState.current.length);
32
+ for (var key in props) {
33
+ keyListOfState.current.push(key);
34
+ }
35
+ }
36
+ });
37
+ return mobxState;
38
+ }
39
+ exports.useMobxState = useMobxState;
40
40
  //# sourceMappingURL=useMobxState.js.map
@@ -0,0 +1,2 @@
1
+ import { Subscription } from "rxjs";
2
+ export declare function useMount(callback: (subscription: Subscription) => void): void;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMount = void 0;
4
+ var react_1 = require("react");
5
+ var rxjs_1 = require("rxjs");
6
+ var useMobxState_1 = require("./useMobxState");
7
+ function useMount(callback) {
8
+ var state = (0, useMobxState_1.useMobxState)({
9
+ subscription: new rxjs_1.Subscription(),
10
+ });
11
+ (0, react_1.useEffect)(function () {
12
+ var subscription = new rxjs_1.Subscription();
13
+ state.subscription = subscription;
14
+ return function () { return subscription.unsubscribe(); };
15
+ }, []);
16
+ (0, react_1.useEffect)(function () {
17
+ var subscription = new rxjs_1.Subscription();
18
+ state.subscription.add(subscription);
19
+ callback(subscription);
20
+ return function () { return subscription.unsubscribe(); };
21
+ }, []);
22
+ }
23
+ exports.useMount = useMount;
24
+ //# sourceMappingURL=useMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMount.js","sourceRoot":"","sources":["../../../lib/js/useMount.tsx"],"names":[],"mappings":";;;AAAA,+BAAkC;AAClC,6BAAoC;AACpC,+CAA8C;AAE9C,SAAgB,QAAQ,CAAC,QAA8C;IAErE,IAAM,KAAK,GAAG,IAAA,2BAAY,EAAC;QACzB,YAAY,EAAE,IAAI,mBAAY,EAAE;KACjC,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC;QACR,IAAM,YAAY,GAAG,IAAI,mBAAY,EAAE,CAAC;QACxC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,OAAO,cAAM,OAAA,YAAY,CAAC,WAAW,EAAE,EAA1B,CAA0B,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC;QACR,IAAM,YAAY,GAAG,IAAI,mBAAY,EAAE,CAAC;QACxC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,OAAO,cAAM,OAAA,YAAY,CAAC,WAAW,EAAE,EAA1B,CAA0B,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAA;AAER,CAAC;AAnBD,4BAmBC"}
@@ -1,9 +1,9 @@
1
- import './js/mobx_config';
2
- import { toJS, observable, makeAutoObservable } from 'mobx';
3
- import { observer } from 'mobx-react-lite';
4
- import { useMobxEffect } from './js/useMobxEffect';
5
- import { useMobxState } from './js/useMobxState';
6
- import { useMount, useUnmount } from 'react-use';
7
- export { toJS, observable, observer, makeAutoObservable };
8
- export { useMobxState, useMobxEffect };
9
- export { useMount, useUnmount };
1
+ import './js/mobx_config';
2
+ import { toJS, observable, makeAutoObservable } from 'mobx';
3
+ import { observer } from 'mobx-react-lite';
4
+ import { useMobxEffect } from './js/useMobxEffect';
5
+ import { useMobxState } from './js/useMobxState';
6
+ import { useMount } from './js/useMount';
7
+ export { toJS, observable, observer, makeAutoObservable };
8
+ export { useMobxState, useMobxEffect };
9
+ export { useMount };
package/dist/esm/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import './js/mobx_config';
2
- import { toJS, observable, makeAutoObservable } from 'mobx';
3
- import { observer } from 'mobx-react-lite';
4
- import { useMobxEffect } from './js/useMobxEffect';
5
- import { useMobxState } from './js/useMobxState';
6
- import { useMount, useUnmount } from 'react-use';
7
- export { toJS, observable, observer, makeAutoObservable };
8
- export { useMobxState, useMobxEffect };
9
- export { useMount, useUnmount };
1
+ import './js/mobx_config';
2
+ import { toJS, observable, makeAutoObservable } from 'mobx';
3
+ import { observer } from 'mobx-react-lite';
4
+ import { useMobxEffect } from './js/useMobxEffect';
5
+ import { useMobxState } from './js/useMobxState';
6
+ import { useMount } from './js/useMount';
7
+ export { toJS, observable, observer, makeAutoObservable };
8
+ export { useMobxState, useMobxEffect };
9
+ export { useMount };
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,5 +1,5 @@
1
- import { configure } from 'mobx';
2
- configure({
3
- enforceActions: 'never'
4
- });
1
+ import { configure } from 'mobx';
2
+ configure({
3
+ enforceActions: 'never'
4
+ });
5
5
  //# sourceMappingURL=mobx_config.js.map
@@ -1 +1 @@
1
- export declare const useMobxEffect: (callback: () => void, dependencyList?: any[]) => void;
1
+ export declare const useMobxEffect: (callback: () => void, dependencyList?: any[]) => void;
@@ -1,28 +1,23 @@
1
- import { useMount, useUnmount } from 'react-use';
2
- import { Subscription } from 'rxjs';
3
- import { reaction, toJS } from 'mobx';
4
- import { useMobxState } from './useMobxState';
5
- import { useEffect } from 'react';
6
- export var useMobxEffect = function (callback, dependencyList) {
7
- var state = useMobxState({
8
- subscription: new Subscription(),
9
- }, { callback: callback });
10
- var source = useMobxState({}, Object.assign({}, dependencyList));
11
- useEffect(function () {
12
- if (!dependencyList) {
13
- callback();
14
- }
15
- });
16
- useMount(function () {
17
- if (dependencyList) {
18
- var disposer_1 = reaction(function () { return [toJS(source)]; }, function () { return state.callback(); }, { fireImmediately: true, delay: 1 });
19
- state.subscription.add(new Subscription(function () {
20
- disposer_1();
21
- }));
22
- }
23
- });
24
- useUnmount(function () {
25
- state.subscription.unsubscribe();
26
- });
27
- };
1
+ import { useMount } from './useMount';
2
+ import { Subscription } from 'rxjs';
3
+ import { reaction, toJS } from 'mobx';
4
+ import { useMobxState } from './useMobxState';
5
+ import { useEffect } from 'react';
6
+ export var useMobxEffect = function (callback, dependencyList) {
7
+ var state = useMobxState({}, { callback: callback });
8
+ var source = useMobxState({}, Object.assign({}, dependencyList));
9
+ useEffect(function () {
10
+ if (!dependencyList) {
11
+ callback();
12
+ }
13
+ });
14
+ useMount(function (subscription) {
15
+ if (dependencyList) {
16
+ var disposer_1 = reaction(function () { return [toJS(source)]; }, function () { return state.callback(); }, { fireImmediately: true, delay: 1 });
17
+ subscription.add(new Subscription(function () {
18
+ disposer_1();
19
+ }));
20
+ }
21
+ });
22
+ };
28
23
  //# sourceMappingURL=useMobxEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,QAAoB,EAAE,cAAsB;IAExE,IAAM,KAAK,GAAG,YAAY,CAAC;QACzB,YAAY,EAAE,IAAI,YAAY,EAAE;KACjC,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;IAEhB,IAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,SAAS,CAAC;QACR,IAAI,CAAC,cAAc,EAAE;YACnB,QAAQ,EAAE,CAAA;SACX;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC;QACP,IAAI,cAAc,EAAE;YAClB,IAAM,UAAQ,GAAG,QAAQ,CAAC,cAAM,OAAA,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAd,CAAc,EAAE,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,EAAhB,CAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAE7G,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBACtC,UAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC;QACT,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,QAAoB,EAAE,cAAsB;IAExE,IAAM,KAAK,GAAG,YAAY,CAAC,EAC1B,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;IAEhB,IAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,SAAS,CAAC;QACR,IAAI,CAAC,cAAc,EAAE;YACnB,QAAQ,EAAE,CAAA;SACX;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAC,YAAY;QACpB,IAAI,cAAc,EAAE;YAClB,IAAM,UAAQ,GAAG,QAAQ,CAAC,cAAM,OAAA,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAd,CAAc,EAAE,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,EAAhB,CAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAE7G,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAChC,UAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare function useMobxState<T extends Record<any, any>>(state: T | (() => T)): T;
2
- export declare function useMobxState<T extends Record<any, any>, P extends Record<any, any>>(state: T | (() => T), props: P): T & P;
1
+ export declare function useMobxState<T extends Record<any, any>>(state: T | (() => T)): T;
2
+ export declare function useMobxState<T extends Record<any, any>, P extends Record<any, any>>(state: T | (() => T), props: P): T & P;
@@ -1,36 +1,36 @@
1
- import { extendObservable, remove, isObservable, runInAction } from 'mobx';
2
- import { useLocalObservable } from 'mobx-react-lite';
3
- import { useRef } from 'react';
4
- export function useMobxState(state, props) {
5
- var mobxState = useLocalObservable(typeof state === "function" ? state : function () { return state; });
6
- var keyListOfState = useRef([]);
7
- runInAction(function () {
8
- var _a, _b;
9
- var _c;
10
- if (props) {
11
- for (var _i = 0, _d = keyListOfState.current; _i < _d.length; _i++) {
12
- var key = _d[_i];
13
- if (!Object.keys(props).includes(key)) {
14
- remove(mobxState, key);
15
- }
16
- }
17
- for (var key in props) {
18
- if (isObservable(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
19
- Object.defineProperty(mobxState, key, Object.getOwnPropertyDescriptor(props, key));
20
- }
21
- else {
22
- if (props[key] !== mobxState[key]) {
23
- remove(mobxState, key);
24
- extendObservable(mobxState, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
25
- }
26
- }
27
- }
28
- keyListOfState.current.splice(0, keyListOfState.current.length);
29
- for (var key in props) {
30
- keyListOfState.current.push(key);
31
- }
32
- }
33
- });
34
- return mobxState;
35
- }
1
+ import { extendObservable, remove, isObservable, runInAction } from 'mobx';
2
+ import { useLocalObservable } from 'mobx-react-lite';
3
+ import { useRef } from 'react';
4
+ export function useMobxState(state, props) {
5
+ var mobxState = useLocalObservable(typeof state === "function" ? state : function () { return state; });
6
+ var keyListOfState = useRef([]);
7
+ runInAction(function () {
8
+ var _a, _b;
9
+ var _c;
10
+ if (props) {
11
+ for (var _i = 0, _d = keyListOfState.current; _i < _d.length; _i++) {
12
+ var key = _d[_i];
13
+ if (!Object.keys(props).includes(key)) {
14
+ remove(mobxState, key);
15
+ }
16
+ }
17
+ for (var key in props) {
18
+ if (isObservable(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
19
+ Object.defineProperty(mobxState, key, Object.getOwnPropertyDescriptor(props, key));
20
+ }
21
+ else {
22
+ if (props[key] !== mobxState[key]) {
23
+ remove(mobxState, key);
24
+ extendObservable(mobxState, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
25
+ }
26
+ }
27
+ }
28
+ keyListOfState.current.splice(0, keyListOfState.current.length);
29
+ for (var key in props) {
30
+ keyListOfState.current.push(key);
31
+ }
32
+ }
33
+ });
34
+ return mobxState;
35
+ }
36
36
  //# sourceMappingURL=useMobxState.js.map
@@ -0,0 +1,2 @@
1
+ import { Subscription } from "rxjs";
2
+ export declare function useMount(callback: (subscription: Subscription) => void): void;
@@ -0,0 +1,20 @@
1
+ import { useEffect } from "react";
2
+ import { Subscription } from "rxjs";
3
+ import { useMobxState } from "./useMobxState";
4
+ export function useMount(callback) {
5
+ var state = useMobxState({
6
+ subscription: new Subscription(),
7
+ });
8
+ useEffect(function () {
9
+ var subscription = new Subscription();
10
+ state.subscription = subscription;
11
+ return function () { return subscription.unsubscribe(); };
12
+ }, []);
13
+ useEffect(function () {
14
+ var subscription = new Subscription();
15
+ state.subscription.add(subscription);
16
+ callback(subscription);
17
+ return function () { return subscription.unsubscribe(); };
18
+ }, []);
19
+ }
20
+ //# sourceMappingURL=useMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMount.js","sourceRoot":"","sources":["../../../lib/js/useMount.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,QAAQ,CAAC,QAA8C;IAErE,IAAM,KAAK,GAAG,YAAY,CAAC;QACzB,YAAY,EAAE,IAAI,YAAY,EAAE;KACjC,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,OAAO,cAAM,OAAA,YAAY,CAAC,WAAW,EAAE,EAA1B,CAA0B,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC;QACR,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,OAAO,cAAM,OAAA,YAAY,CAAC,WAAW,EAAE,EAA1B,CAA0B,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAA;AAER,CAAC"}
package/lib/index.tsx CHANGED
@@ -3,8 +3,8 @@ import { toJS, observable, makeAutoObservable } from 'mobx';
3
3
  import { observer } from 'mobx-react-lite';
4
4
  import { useMobxEffect } from './js/useMobxEffect';
5
5
  import { useMobxState } from './js/useMobxState';
6
- import { useMount, useUnmount } from 'react-use';
6
+ import { useMount } from './js/useMount';
7
7
 
8
8
  export { toJS, observable, observer, makeAutoObservable }
9
9
  export { useMobxState, useMobxEffect }
10
- export { useMount, useUnmount }
10
+ export { useMount }
@@ -1,4 +1,4 @@
1
- import { useMount, useUnmount } from 'react-use';
1
+ import { useMount } from './useMount';
2
2
  import { Subscription } from 'rxjs';
3
3
  import { reaction, toJS } from 'mobx'
4
4
  import { useMobxState } from './useMobxState';
@@ -7,7 +7,6 @@ import { useEffect } from 'react';
7
7
  export const useMobxEffect = (callback: () => void, dependencyList?: any[]): void => {
8
8
 
9
9
  const state = useMobxState({
10
- subscription: new Subscription(),
11
10
  }, { callback })
12
11
 
13
12
  const source = useMobxState({}, Object.assign({}, dependencyList));
@@ -18,17 +17,14 @@ export const useMobxEffect = (callback: () => void, dependencyList?: any[]): voi
18
17
  }
19
18
  })
20
19
 
21
- useMount(() => {
20
+ useMount((subscription) => {
22
21
  if (dependencyList) {
23
22
  const disposer = reaction(() => [toJS(source)], () => state.callback(), { fireImmediately: true, delay: 1 });
24
23
 
25
- state.subscription.add(new Subscription(() => {
24
+ subscription.add(new Subscription(() => {
26
25
  disposer();
27
26
  }));
28
27
  }
29
28
  })
30
29
 
31
- useUnmount(() => {
32
- state.subscription.unsubscribe();
33
- })
34
30
  }
@@ -0,0 +1,24 @@
1
+ import { useEffect } from "react";
2
+ import { Subscription } from "rxjs";
3
+ import { useMobxState } from "./useMobxState";
4
+
5
+ export function useMount(callback: (subscription: Subscription) => void) {
6
+
7
+ const state = useMobxState({
8
+ subscription: new Subscription(),
9
+ });
10
+
11
+ useEffect(() => {
12
+ const subscription = new Subscription();
13
+ state.subscription = subscription;
14
+ return () => subscription.unsubscribe();
15
+ }, [])
16
+
17
+ useEffect(() => {
18
+ const subscription = new Subscription();
19
+ state.subscription.add(subscription);
20
+ callback(subscription);
21
+ return () => subscription.unsubscribe();
22
+ }, [])
23
+
24
+ }
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"mobx-react-use-autorun","version":"3.1.31","description":"Provide concise usage for mobx in react","scripts":{"test":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_test.ts","build":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_build.ts","make":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_make.ts"},"dependencies":{"mobx":"6.9.0","mobx-react-lite":"3.4.3","react-use":"17.4.0","rxjs":"7.8.1"},"peerDependencies":{"react":">=16.8.0"},"license":"MIT","keywords":["react","mobx","typescript","hooks"],"main":"./dist/cjs/index.js","module":"./dist/esm/index.js","es2015":"./dist/esm/index.js","types":"./dist/cjs/index.d.ts","eslintConfig":{"extends":["react-app","react-app/jest"]},"exports":{".":{"types":"./dist/cjs/index.d.ts","node":"./dist/cjs/index.js","require":"./dist/cjs/index.js","es2015":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"homepage":"https://github.com/zdu-strong/mobx-react-use-autorun#readme","repository":{"type":"git","url":"git+https://github.com/zdu-strong/mobx-react-use-autorun.git"},"files":["lib","dist"],"bugs":{"url":"https://github.com/zdu-strong/mobx-react-use-autorun/issues"},"publishConfig":{"registry":"https://registry.npmjs.org/"}}
1
+ {"name":"mobx-react-use-autorun","version":"4.0.2","description":"Provide concise usage for mobx in react","scripts":{"test":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_test.ts","build":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_build.ts","make":"npx -y -p typescript -p ts-node ts-node --skipProject bin/mobx_react_make.ts"},"dependencies":{"mobx":"6.9.0","mobx-react-lite":"3.4.3","rxjs":"7.8.1"},"peerDependencies":{"react":">=16.8.0"},"license":"MIT","keywords":["react","mobx","typescript","hooks"],"main":"./dist/cjs/index.js","module":"./dist/esm/index.js","es2015":"./dist/esm/index.js","types":"./dist/cjs/index.d.ts","eslintConfig":{"extends":["react-app","react-app/jest"]},"exports":{".":{"types":"./dist/cjs/index.d.ts","node":"./dist/cjs/index.js","require":"./dist/cjs/index.js","es2015":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"homepage":"https://github.com/zdu-strong/mobx-react-use-autorun#readme","repository":{"type":"git","url":"git+https://github.com/zdu-strong/mobx-react-use-autorun.git"},"files":["lib","dist"],"bugs":{"url":"https://github.com/zdu-strong/mobx-react-use-autorun/issues"},"publishConfig":{"registry":"https://registry.npmjs.org/"}}