mobx-react-use-autorun 4.0.29-beta → 4.0.31-beta
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,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.useMobxEffect = void 0;
|
|
15
4
|
var useMount_1 = require("./useMount");
|
|
@@ -19,49 +8,49 @@ var react_1 = require("react");
|
|
|
19
8
|
var mobx_2 = require("mobx");
|
|
20
9
|
var useMobxEffect = function (callback, dependencyList) {
|
|
21
10
|
var callbackRef = (0, react_1.useRef)({ callback: callback });
|
|
11
|
+
var subjectRef = (0, react_1.useRef)(new rxjs_1.ReplaySubject(1));
|
|
12
|
+
var dependencyListRef = (0, react_1.useRef)(dependencyList);
|
|
22
13
|
callbackRef.current.callback = callback;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var sourceRef = (0, react_1.useRef)((0, mobx_1.observable)(__assign({}, props)));
|
|
26
|
-
(0, mobx_2.runInAction)(function () {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
var _c;
|
|
14
|
+
dependencyListRef.current = dependencyList;
|
|
15
|
+
(0, react_1.useEffect)(function () {
|
|
29
16
|
if (dependencyList) {
|
|
30
|
-
|
|
31
|
-
var key = _d[_i];
|
|
32
|
-
if (!Object.keys(props).includes(key)) {
|
|
33
|
-
(0, mobx_2.remove)(sourceRef.current, key);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
for (var key in props) {
|
|
37
|
-
if ((0, mobx_2.isObservable)(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
|
|
38
|
-
Object.defineProperty(sourceRef.current, key, Object.getOwnPropertyDescriptor(props, key));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
if (props[key] !== sourceRef.current[key]) {
|
|
42
|
-
(0, mobx_2.remove)(sourceRef.current, key);
|
|
43
|
-
(0, mobx_2.extendObservable)(sourceRef.current, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
keyListOfSourceRef.current.splice(0, keyListOfSourceRef.current.length);
|
|
48
|
-
for (var key in props) {
|
|
49
|
-
keyListOfSourceRef.current.push(key);
|
|
50
|
-
}
|
|
17
|
+
return;
|
|
51
18
|
}
|
|
19
|
+
callback();
|
|
52
20
|
});
|
|
53
21
|
(0, react_1.useEffect)(function () {
|
|
54
22
|
if (!dependencyList) {
|
|
55
|
-
|
|
23
|
+
return;
|
|
56
24
|
}
|
|
57
|
-
|
|
25
|
+
subjectRef.current.next();
|
|
26
|
+
}, dependencyList);
|
|
58
27
|
(0, useMount_1.useMount)(function (subscription) {
|
|
59
|
-
if (dependencyList) {
|
|
60
|
-
|
|
61
|
-
subscription.add(new rxjs_1.Subscription(function () {
|
|
62
|
-
disposer_1();
|
|
63
|
-
}));
|
|
28
|
+
if (!dependencyList) {
|
|
29
|
+
return;
|
|
64
30
|
}
|
|
31
|
+
var mobxData = (0, mobx_1.observable)(Object.assign({}, dependencyListRef.current));
|
|
32
|
+
subscription.add(subjectRef.current.pipe((0, rxjs_1.tap)(function () {
|
|
33
|
+
(0, mobx_2.runInAction)(function () {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
var _c;
|
|
36
|
+
var props = Object.assign({}, dependencyListRef.current);
|
|
37
|
+
for (var key in props) {
|
|
38
|
+
if ((0, mobx_2.isObservable)(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
|
|
39
|
+
Object.defineProperty(mobxData, key, Object.getOwnPropertyDescriptor(props, key));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
if (props[key] !== mobxData[key]) {
|
|
43
|
+
(0, mobx_2.remove)(mobxData, key);
|
|
44
|
+
(0, mobx_2.extendObservable)(mobxData, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
})).subscribe());
|
|
50
|
+
var disposer = (0, mobx_1.reaction)(function () { return [(0, mobx_1.toJS)(mobxData)]; }, function () { return callbackRef.current.callback(); }, { fireImmediately: true, delay: 1 });
|
|
51
|
+
subscription.add(new rxjs_1.Subscription(function () {
|
|
52
|
+
disposer();
|
|
53
|
+
}));
|
|
65
54
|
});
|
|
66
55
|
};
|
|
67
56
|
exports.useMobxEffect = useMobxEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":";;;AAAA,uCAAsC;AACtC,6BAAwD;AACxD,6BAAiD;AACjD,+BAA0C;AAC1C,6BAA2E;AAEpE,IAAM,aAAa,GAAG,UAAC,QAAoB,EAAE,cAAsB;IAExE,IAAM,WAAW,GAAG,IAAA,cAAM,EAA2B,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7E,IAAM,UAAU,GAAG,IAAA,cAAM,EAAC,IAAI,oBAAa,CAAO,CAAC,CAAC,CAAC,CAAC;IAEtD,IAAM,iBAAiB,GAAG,IAAA,cAAM,EAAC,cAAc,CAAC,CAAC;IAEjD,WAAW,CAAC,OAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEzC,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAE3C,IAAA,iBAAS,EAAC;QACR,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,EAAE,cAAc,CAAC,CAAA;IAElB,IAAA,mBAAQ,EAAC,UAAC,YAAY;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAM,QAAQ,GAAG,IAAA,iBAAU,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CACtC,IAAA,UAAG,EAAC;YACF,IAAA,kBAAW,EAAC;;;gBACV,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC3D,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,IAAI,IAAA,mBAAY,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAI,MAAA,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,0CAAE,GAAG,CAAA,EAAE,CAAC;wBACjF,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAQ,CAAC,CAAA;oBAC1F,CAAC;yBAAM,CAAC;wBACN,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACjC,IAAA,aAAM,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;4BACtB,IAAA,uBAAgB,EAAC,QAAQ,YAAI,GAAC,GAAG,IAAG,KAAK,CAAC,GAAG,CAAC,iBAAM,GAAC,GAAG,IAAG,KAAK,MAAG,CAAA;wBACrE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC,CAAC;QAEf,IAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,cAAM,OAAA,CAAC,IAAA,WAAI,EAAC,QAAQ,CAAC,CAAC,EAAhB,CAAgB,EAAE,cAAM,OAAA,WAAW,CAAC,OAAQ,CAAC,QAAQ,EAAE,EAA/B,CAA+B,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAE9H,YAAY,CAAC,GAAG,CAAC,IAAI,mBAAY,CAAC;YAChC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC,CAAC;IAEN,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAzDY,QAAA,aAAa,iBAyDzB"}
|
|
@@ -1,64 +1,53 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMount } from './useMount';
|
|
13
|
-
import { Subscription } from 'rxjs';
|
|
2
|
+
import { ReplaySubject, Subscription, tap } from 'rxjs';
|
|
14
3
|
import { observable, reaction, toJS } from 'mobx';
|
|
15
4
|
import { useEffect, useRef } from 'react';
|
|
16
5
|
import { extendObservable, remove, isObservable, runInAction } from 'mobx';
|
|
17
6
|
export var useMobxEffect = function (callback, dependencyList) {
|
|
18
7
|
var callbackRef = useRef({ callback: callback });
|
|
8
|
+
var subjectRef = useRef(new ReplaySubject(1));
|
|
9
|
+
var dependencyListRef = useRef(dependencyList);
|
|
19
10
|
callbackRef.current.callback = callback;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var sourceRef = useRef(observable(__assign({}, props)));
|
|
23
|
-
runInAction(function () {
|
|
24
|
-
var _a, _b;
|
|
25
|
-
var _c;
|
|
11
|
+
dependencyListRef.current = dependencyList;
|
|
12
|
+
useEffect(function () {
|
|
26
13
|
if (dependencyList) {
|
|
27
|
-
|
|
28
|
-
var key = _d[_i];
|
|
29
|
-
if (!Object.keys(props).includes(key)) {
|
|
30
|
-
remove(sourceRef.current, key);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
for (var key in props) {
|
|
34
|
-
if (isObservable(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
|
|
35
|
-
Object.defineProperty(sourceRef.current, key, Object.getOwnPropertyDescriptor(props, key));
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
if (props[key] !== sourceRef.current[key]) {
|
|
39
|
-
remove(sourceRef.current, key);
|
|
40
|
-
extendObservable(sourceRef.current, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
keyListOfSourceRef.current.splice(0, keyListOfSourceRef.current.length);
|
|
45
|
-
for (var key in props) {
|
|
46
|
-
keyListOfSourceRef.current.push(key);
|
|
47
|
-
}
|
|
14
|
+
return;
|
|
48
15
|
}
|
|
16
|
+
callback();
|
|
49
17
|
});
|
|
50
18
|
useEffect(function () {
|
|
51
19
|
if (!dependencyList) {
|
|
52
|
-
|
|
20
|
+
return;
|
|
53
21
|
}
|
|
54
|
-
|
|
22
|
+
subjectRef.current.next();
|
|
23
|
+
}, dependencyList);
|
|
55
24
|
useMount(function (subscription) {
|
|
56
|
-
if (dependencyList) {
|
|
57
|
-
|
|
58
|
-
subscription.add(new Subscription(function () {
|
|
59
|
-
disposer_1();
|
|
60
|
-
}));
|
|
25
|
+
if (!dependencyList) {
|
|
26
|
+
return;
|
|
61
27
|
}
|
|
28
|
+
var mobxData = observable(Object.assign({}, dependencyListRef.current));
|
|
29
|
+
subscription.add(subjectRef.current.pipe(tap(function () {
|
|
30
|
+
runInAction(function () {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
var _c;
|
|
33
|
+
var props = Object.assign({}, dependencyListRef.current);
|
|
34
|
+
for (var key in props) {
|
|
35
|
+
if (isObservable(props[key]) || ((_c = Object.getOwnPropertyDescriptor(props, key)) === null || _c === void 0 ? void 0 : _c.get)) {
|
|
36
|
+
Object.defineProperty(mobxData, key, Object.getOwnPropertyDescriptor(props, key));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
if (props[key] !== mobxData[key]) {
|
|
40
|
+
remove(mobxData, key);
|
|
41
|
+
extendObservable(mobxData, (_a = {}, _a[key] = props[key], _a), (_b = {}, _b[key] = false, _b));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
})).subscribe());
|
|
47
|
+
var disposer = reaction(function () { return [toJS(mobxData)]; }, function () { return callbackRef.current.callback(); }, { fireImmediately: true, delay: 1 });
|
|
48
|
+
subscription.add(new Subscription(function () {
|
|
49
|
+
disposer();
|
|
50
|
+
}));
|
|
62
51
|
});
|
|
63
52
|
};
|
|
64
53
|
//# sourceMappingURL=useMobxEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMobxEffect.js","sourceRoot":"","sources":["../../../lib/js/useMobxEffect.tsx"],"names":[],"mappings":"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"}
|
package/lib/js/useMobxEffect.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useMount } from './useMount';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
2
|
+
import { ReplaySubject, Subscription, tap } from 'rxjs';
|
|
3
3
|
import { observable, reaction, toJS } from 'mobx'
|
|
4
4
|
import { useEffect, useRef } from 'react';
|
|
5
5
|
import { extendObservable, remove, isObservable, runInAction } from 'mobx';
|
|
@@ -8,57 +8,57 @@ export const useMobxEffect = (callback: () => void, dependencyList?: any[]): voi
|
|
|
8
8
|
|
|
9
9
|
const callbackRef = useRef<{ callback: () => void }>({ callback: callback });
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const subjectRef = useRef(new ReplaySubject<void>(1));
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const dependencyListRef = useRef(dependencyList);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
callbackRef.current!.callback = callback;
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
...props
|
|
19
|
-
}));
|
|
17
|
+
dependencyListRef.current = dependencyList;
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
useEffect(() => {
|
|
22
20
|
if (dependencyList) {
|
|
23
|
-
|
|
24
|
-
for (const key of keyListOfSourceRef.current) {
|
|
25
|
-
if (!Object.keys(props).includes(key)) {
|
|
26
|
-
remove(sourceRef.current!, key);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
for (const key in props) {
|
|
31
|
-
if (isObservable(props[key]) || Object.getOwnPropertyDescriptor(props, key)?.get) {
|
|
32
|
-
Object.defineProperty(sourceRef.current!, key, Object.getOwnPropertyDescriptor(props, key) as any)
|
|
33
|
-
} else {
|
|
34
|
-
if (props[key] !== sourceRef.current![key]) {
|
|
35
|
-
remove(sourceRef.current!, key);
|
|
36
|
-
extendObservable(sourceRef.current!, { [key]: props[key] }, { [key]: false })
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
keyListOfSourceRef.current.splice(0, keyListOfSourceRef.current.length);
|
|
42
|
-
for (const key in props) {
|
|
43
|
-
keyListOfSourceRef.current.push(key);
|
|
44
|
-
}
|
|
21
|
+
return;
|
|
45
22
|
}
|
|
23
|
+
callback();
|
|
46
24
|
})
|
|
47
25
|
|
|
48
26
|
useEffect(() => {
|
|
49
27
|
if (!dependencyList) {
|
|
50
|
-
|
|
28
|
+
return;
|
|
51
29
|
}
|
|
52
|
-
|
|
30
|
+
subjectRef.current.next();
|
|
31
|
+
}, dependencyList)
|
|
53
32
|
|
|
54
33
|
useMount((subscription) => {
|
|
55
|
-
if (dependencyList) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
subscription.add(new Subscription(() => {
|
|
59
|
-
disposer();
|
|
60
|
-
}));
|
|
34
|
+
if (!dependencyList) {
|
|
35
|
+
return;
|
|
61
36
|
}
|
|
37
|
+
const mobxData = observable(Object.assign({}, dependencyListRef.current));
|
|
38
|
+
subscription.add(subjectRef.current.pipe(
|
|
39
|
+
tap(() => {
|
|
40
|
+
runInAction(() => {
|
|
41
|
+
const props = Object.assign({}, dependencyListRef.current);
|
|
42
|
+
for (const key in props) {
|
|
43
|
+
if (isObservable(props[key]) || Object.getOwnPropertyDescriptor(props, key)?.get) {
|
|
44
|
+
Object.defineProperty(mobxData, key, Object.getOwnPropertyDescriptor(props, key) as any)
|
|
45
|
+
} else {
|
|
46
|
+
if (props[key] !== mobxData[key]) {
|
|
47
|
+
remove(mobxData, key);
|
|
48
|
+
extendObservable(mobxData, { [key]: props[key] }, { [key]: false })
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
).subscribe());
|
|
55
|
+
|
|
56
|
+
const disposer = reaction(() => [toJS(mobxData)], () => callbackRef.current!.callback(), { fireImmediately: true, delay: 1 });
|
|
57
|
+
|
|
58
|
+
subscription.add(new Subscription(() => {
|
|
59
|
+
disposer();
|
|
60
|
+
}));
|
|
61
|
+
|
|
62
62
|
})
|
|
63
63
|
|
|
64
64
|
}
|
package/package.json
CHANGED