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 +12 -17
- package/dist/cjs/index.d.ts +9 -9
- package/dist/cjs/index.js +16 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/js/mobx_config.d.ts +1 -1
- package/dist/cjs/js/mobx_config.js +6 -6
- package/dist/cjs/js/useMobxEffect.d.ts +1 -1
- package/dist/cjs/js/useMobxEffect.js +26 -31
- package/dist/cjs/js/useMobxEffect.js.map +1 -1
- package/dist/cjs/js/useMobxState.d.ts +2 -2
- package/dist/cjs/js/useMobxState.js +39 -39
- package/dist/cjs/js/useMount.d.ts +2 -0
- package/dist/cjs/js/useMount.js +24 -0
- package/dist/cjs/js/useMount.js.map +1 -0
- package/dist/esm/index.d.ts +9 -9
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/js/mobx_config.d.ts +1 -1
- package/dist/esm/js/mobx_config.js +4 -4
- package/dist/esm/js/useMobxEffect.d.ts +1 -1
- package/dist/esm/js/useMobxEffect.js +22 -27
- package/dist/esm/js/useMobxEffect.js.map +1 -1
- package/dist/esm/js/useMobxState.d.ts +2 -2
- package/dist/esm/js/useMobxState.js +35 -35
- package/dist/esm/js/useMount.d.ts +2 -0
- package/dist/esm/js/useMount.js +20 -0
- package/dist/esm/js/useMount.js.map +1 -0
- package/lib/index.tsx +2 -2
- package/lib/js/useMobxEffect.tsx +3 -7
- package/lib/js/useMount.tsx +24 -0
- package/package.json +1 -1
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
|
|
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
|
-
|
|
134
|
+
It provides a subscription as a parameter, which will be unsubscribed when the component will unmount.<br/>
|
|
135
135
|
|
|
136
|
-
|
|
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
|
|
141
|
+
import { useMount } from 'mobx-react-use-autorun'
|
|
139
142
|
|
|
140
143
|
export default observer(() => {
|
|
141
144
|
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
155
|
-
|
|
148
|
+
subscription.add(new Subscription(() => {
|
|
149
|
+
console.log("component will unmount")
|
|
150
|
+
}))
|
|
156
151
|
})
|
|
157
152
|
|
|
158
153
|
return null;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -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
|
|
7
|
-
export { toJS, observable, observer, makeAutoObservable };
|
|
8
|
-
export { useMobxState, useMobxEffect };
|
|
9
|
-
export { useMount
|
|
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.
|
|
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
|
|
16
|
-
Object.defineProperty(exports, "useMount", { enumerable: true, get: function () { return
|
|
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
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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,
|
|
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,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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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
|
|
7
|
-
export { toJS, observable, observer, makeAutoObservable };
|
|
8
|
-
export { useMobxState, useMobxEffect };
|
|
9
|
-
export { useMount
|
|
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
|
|
7
|
-
export { toJS, observable, observer, makeAutoObservable };
|
|
8
|
-
export { useMobxState, useMobxEffect };
|
|
9
|
-
export { useMount
|
|
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
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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,
|
|
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,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
|
|
6
|
+
import { useMount } from './js/useMount';
|
|
7
7
|
|
|
8
8
|
export { toJS, observable, observer, makeAutoObservable }
|
|
9
9
|
export { useMobxState, useMobxEffect }
|
|
10
|
-
export { useMount
|
|
10
|
+
export { useMount }
|
package/lib/js/useMobxEffect.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useMount
|
|
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
|
-
|
|
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":"
|
|
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/"}}
|