mobx-react-use-autorun 2.0.8 → 2.0.10
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,7 +1,6 @@
|
|
|
1
|
-
import { extendObservable, observable, remove } from 'mobx';
|
|
1
|
+
import { extendObservable, observable, remove, runInAction, isObservable } from 'mobx';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
export function useAsLocalSource(data) {
|
|
4
|
-
var _a, _b;
|
|
5
4
|
var initStateCallback = function () {
|
|
6
5
|
if (Array.isArray(data)) {
|
|
7
6
|
throw new Error('Arrays is unsupported!');
|
|
@@ -10,21 +9,25 @@ export function useAsLocalSource(data) {
|
|
|
10
9
|
return initState;
|
|
11
10
|
};
|
|
12
11
|
var state = useRef(initStateCallback()).current;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
for (var key in data) {
|
|
19
|
-
if (typeof data[key] === 'function') {
|
|
20
|
-
if (state[key] !== data[key]) {
|
|
12
|
+
runInAction(function () {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
for (var key in state) {
|
|
15
|
+
if (!Object.keys(data).includes(key)) {
|
|
21
16
|
remove(state, key);
|
|
22
|
-
extendObservable(state, (_a = {}, _a[key] = data[key], _a), (_b = {}, _b[key] = false, _b));
|
|
23
17
|
}
|
|
24
|
-
continue;
|
|
25
18
|
}
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
for (var key in data) {
|
|
20
|
+
if (isObservable(data[key])) {
|
|
21
|
+
state[key] = data[key];
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
if (data[key] !== state[key]) {
|
|
25
|
+
remove(state, key);
|
|
26
|
+
extendObservable(state, (_a = {}, _a[key] = data[key], _a), (_b = {}, _b[key] = false, _b));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
28
31
|
return state;
|
|
29
32
|
}
|
|
30
33
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAsLocalSource.js","sourceRoot":"","sources":["../../lib/lib/useAsLocalSource.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"useAsLocalSource.js","sourceRoot":"","sources":["../../lib/lib/useAsLocalSource.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,UAAU,gBAAgB,CAAmB,IAAO;IAEtD,IAAM,iBAAiB,GAAG;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC7C;QACD,IAAM,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAM,CAAC;QAClE,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC;IAElD,WAAW,CAAC;;QACR,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAClC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACtB;SACJ;QACD,KAAK,IAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBACzB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B;iBAAM;gBACH,IAAG,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAC;oBACxB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACnB,gBAAgB,CAAC,KAAK,YAAI,GAAC,GAAG,IAAG,IAAI,CAAC,GAAG,CAAC,iBAAM,GAAC,GAAG,IAAG,KAAK,MAAG,CAAA;iBAClE;aACJ;SACJ;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC;AACjB,CAAC;AAAA,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { extendObservable, observable, remove } from 'mobx';
|
|
1
|
+
import { extendObservable, observable, remove, runInAction, isObservable } from 'mobx';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
|
|
4
4
|
export function useAsLocalSource<T extends object>(data: T): T {
|
|
@@ -13,21 +13,23 @@ export function useAsLocalSource<T extends object>(data: T): T {
|
|
|
13
13
|
|
|
14
14
|
const state = useRef(initStateCallback()).current;
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
for (const key in data) {
|
|
22
|
-
if (typeof data[key] === 'function') {
|
|
23
|
-
if (state[key] !== data[key]) {
|
|
16
|
+
runInAction(() => {
|
|
17
|
+
for (const key in state) {
|
|
18
|
+
if (!Object.keys(data).includes(key)) {
|
|
24
19
|
remove(state, key);
|
|
25
|
-
extendObservable(state, { [key]: data[key] }, { [key]: false })
|
|
26
20
|
}
|
|
27
|
-
continue;
|
|
28
21
|
}
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
for (const key in data) {
|
|
23
|
+
if (isObservable(data[key])) {
|
|
24
|
+
state[key] = data[key];
|
|
25
|
+
} else {
|
|
26
|
+
if(data[key] !== state[key]){
|
|
27
|
+
remove(state, key);
|
|
28
|
+
extendObservable(state, { [key]: data[key] }, { [key]: false })
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
})
|
|
31
33
|
|
|
32
34
|
return state;
|
|
33
35
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-react-use-autorun",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.10",
|
|
4
4
|
"description": "React Hook for mobx",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npm install -g typescript@4.6.3 @types/node@17.0.23 ts-node@10.7.0 cross-env@7.0.3 && cross-env TS_NODE_SKIP_PROJECT=true ts-node bin/mobx_react_build.ts",
|