mobx-react-use-autorun 2.0.6 → 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.
@@ -0,0 +1,12 @@
1
+ import './lib/mobx_config';
2
+ import { toJS, observable } from 'mobx';
3
+ import { useLocalObservable, observer } from 'mobx-react-lite';
4
+ import { timeout } from './lib/timeout';
5
+ import { useAsLocalSource } from './lib/useAsLocalSource';
6
+ import { useAutorun } from './lib/useAutorun';
7
+ import { useAsyncExhaust } from './lib/useAsyncExhaust';
8
+ export { toJS, observable, observer, useLocalObservable };
9
+ export { timeout };
10
+ export { useAsLocalSource };
11
+ export { useAutorun };
12
+ export { useAsyncExhaust };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function timeout(due: number | Date): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function useAsLocalSource<T extends object>(data: T): T;
@@ -1,4 +1,4 @@
1
- import { 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
4
  var initStateCallback = function () {
@@ -9,14 +9,25 @@ export function useAsLocalSource(data) {
9
9
  return initState;
10
10
  };
11
11
  var state = useRef(initStateCallback()).current;
12
- for (var key in state) {
13
- if (!Object.keys(data).includes(key)) {
14
- remove(state, key);
12
+ runInAction(function () {
13
+ var _a, _b;
14
+ for (var key in state) {
15
+ if (!Object.keys(data).includes(key)) {
16
+ remove(state, key);
17
+ }
15
18
  }
16
- }
17
- for (var key in data) {
18
- state[key] = data[key];
19
- }
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
+ });
20
31
  return state;
21
32
  }
22
33
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"useAsLocalSource.js","sourceRoot":"","sources":["../../lib/lib/useAsLocalSource.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC1C,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,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACtB;KACJ;IACD,KAAK,IAAM,GAAG,IAAI,IAAI,EAAE;QACpB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAAA,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"}
@@ -0,0 +1 @@
1
+ export declare function useAsyncExhaust<T>(callback: T): T;
@@ -0,0 +1 @@
1
+ export declare const useAutorun: (callback: () => void, dependencyList: any[]) => void;
@@ -1,4 +1,4 @@
1
- import { 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,14 +13,23 @@ export function useAsLocalSource<T extends object>(data: T): T {
13
13
 
14
14
  const state = useRef(initStateCallback()).current;
15
15
 
16
- for (const key in state) {
17
- if (!Object.keys(data).includes(key)) {
18
- remove(state, key);
16
+ runInAction(() => {
17
+ for (const key in state) {
18
+ if (!Object.keys(data).includes(key)) {
19
+ remove(state, key);
20
+ }
19
21
  }
20
- }
21
- for (const key in data) {
22
- state[key] = data[key];
23
- }
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
+ })
24
33
 
25
34
  return state;
26
35
  };
package/lib/tsconfig.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "outDir": "../dist/",
5
5
  "noEmit": false,
6
6
  "sourceMap": true,
7
+ "declaration": true,
7
8
  },
8
9
  "include": [
9
10
  "**/*"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-react-use-autorun",
3
- "version": "2.0.6",
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",