@legendapp/state 3.0.0-alpha.19 → 3.0.0-alpha.20
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/index.d.mts +5 -5
- package/index.d.ts +5 -5
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +1 -1
- package/react.d.mts +9 -6
- package/react.d.ts +9 -6
- package/react.js +15 -1
- package/react.mjs +15 -1
- package/sync.js +3 -3
- package/sync.mjs +4 -4
package/index.d.mts
CHANGED
|
@@ -7,7 +7,7 @@ type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> |
|
|
|
7
7
|
type IsUserDefinedObject<T> = T extends Function | BuiltIns | any[] ? false : T extends object ? true : false;
|
|
8
8
|
type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : T extends ImmutableObservableBase<infer t>[] ? t[] : IsUserDefinedObject<T> extends true ? {
|
|
9
9
|
[K in keyof T]: RemoveObservables<T[K]>;
|
|
10
|
-
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: string) => infer TRet ? Record<
|
|
10
|
+
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: infer TKey extends string | number) => infer TRet ? Record<TKey, RemoveObservables<TRet>> & T : T;
|
|
11
11
|
interface ObservableArray<T, U> extends ObservablePrimitive<T>, Pick<Array<Observable<U>>, ArrayOverrideFnNames>, Omit<RemoveIndex<Array<U>>, ArrayOverrideFnNames> {
|
|
12
12
|
}
|
|
13
13
|
interface ObservableObjectFns<T> {
|
|
@@ -76,15 +76,15 @@ type ObservableChildren<T, Nullable = IsNullable<T>> = {
|
|
|
76
76
|
[K in keyof T]-?: Observable<UndefinedIf<T[K], Nullable>>;
|
|
77
77
|
};
|
|
78
78
|
type ObservableFunctionChildren<T> = {
|
|
79
|
-
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string) => Promise<infer t> | infer t ?
|
|
79
|
+
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string | number) => Promise<infer t> | infer t ? IsLookupFunction<T[K]> extends true ? Observable<Record<Key, t>> & T[K] : t extends void ? T[K] : t extends Observable ? t : Observable<t> & (() => t) : T[K] & Observable<T[K]>;
|
|
80
80
|
};
|
|
81
81
|
type IsStrictAny<T> = 0 extends 1 & T ? true : false;
|
|
82
82
|
type ObservableObject<T> = ObservableObjectFunctions<ObservableProps<T> & NonObservableProps<T>> & ObservableChildren<ObservableProps<T>> & ObservableFunctionChildren<NonObservableProps<T>>;
|
|
83
83
|
type ObservableFunction<T> = T extends () => infer t ? t | (() => t) : T;
|
|
84
|
-
type
|
|
84
|
+
type IsLookupFunction<T> = T extends (...args: infer P) => any ? P extends {
|
|
85
85
|
length: 1;
|
|
86
|
-
} ? P[0] extends string | ObservablePrimitive<string> ? true : false : false : false;
|
|
87
|
-
type ObservableNode<T, NT = NonNullable<T>> = [NT] extends [never] ? ObservablePrimitive<T> : IsStrictAny<T> extends true ? ObservableAny : [T] extends [Promise<infer t>] ? ObservableNode<t> : [T] extends [(key: infer K extends string) => infer t] ? [t] extends [ImmutableObservableBase<any>] ?
|
|
86
|
+
} ? P[0] extends string | ObservablePrimitive<string> | number | ObservablePrimitive<number> ? true : false : false : false;
|
|
87
|
+
type ObservableNode<T, NT = NonNullable<T>> = [NT] extends [never] ? ObservablePrimitive<T> : IsStrictAny<T> extends true ? ObservableAny : [T] extends [Promise<infer t>] ? ObservableNode<t> : [T] extends [(key: infer K extends string) => infer t] ? [t] extends [ImmutableObservableBase<any>] ? IsLookupFunction<T> extends true ? Observable<Record<K, t>> : t : IsLookupFunction<T> extends true ? Observable<Record<K, t>> & T : Observable<ObservableFunction<t>> : [NT] extends [ImmutableObservableBase<any>] ? NT : [NT] extends [Primitive$1] ? [NT] extends [boolean] ? ObservableBoolean : ObservablePrimitive<T> : NT extends Map<any, any> | WeakMap<any, any> ? ObservableMap<NT> : NT extends Set<infer U> ? ObservableSet<Set<UndefinedIf<U, IsNullable<T>>>> : NT extends WeakSet<any> ? ObservableSet<NT> : NT extends Array<infer U> ? ObservableArray<T, U> & ObservableChildren<T> : ObservableObject<T> & {};
|
|
88
88
|
type Observable<T = any> = ObservableNode<T> & {};
|
|
89
89
|
type ObservableParam<T = any> = ImmutableObservableSimple<T> & MutableObservableSimple;
|
|
90
90
|
type FixExpanded<T> = [T] extends [boolean] ? boolean : T;
|
package/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> |
|
|
|
7
7
|
type IsUserDefinedObject<T> = T extends Function | BuiltIns | any[] ? false : T extends object ? true : false;
|
|
8
8
|
type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : T extends ImmutableObservableBase<infer t>[] ? t[] : IsUserDefinedObject<T> extends true ? {
|
|
9
9
|
[K in keyof T]: RemoveObservables<T[K]>;
|
|
10
|
-
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: string) => infer TRet ? Record<
|
|
10
|
+
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: infer TKey extends string | number) => infer TRet ? Record<TKey, RemoveObservables<TRet>> & T : T;
|
|
11
11
|
interface ObservableArray<T, U> extends ObservablePrimitive<T>, Pick<Array<Observable<U>>, ArrayOverrideFnNames>, Omit<RemoveIndex<Array<U>>, ArrayOverrideFnNames> {
|
|
12
12
|
}
|
|
13
13
|
interface ObservableObjectFns<T> {
|
|
@@ -76,15 +76,15 @@ type ObservableChildren<T, Nullable = IsNullable<T>> = {
|
|
|
76
76
|
[K in keyof T]-?: Observable<UndefinedIf<T[K], Nullable>>;
|
|
77
77
|
};
|
|
78
78
|
type ObservableFunctionChildren<T> = {
|
|
79
|
-
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string) => Promise<infer t> | infer t ?
|
|
79
|
+
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string | number) => Promise<infer t> | infer t ? IsLookupFunction<T[K]> extends true ? Observable<Record<Key, t>> & T[K] : t extends void ? T[K] : t extends Observable ? t : Observable<t> & (() => t) : T[K] & Observable<T[K]>;
|
|
80
80
|
};
|
|
81
81
|
type IsStrictAny<T> = 0 extends 1 & T ? true : false;
|
|
82
82
|
type ObservableObject<T> = ObservableObjectFunctions<ObservableProps<T> & NonObservableProps<T>> & ObservableChildren<ObservableProps<T>> & ObservableFunctionChildren<NonObservableProps<T>>;
|
|
83
83
|
type ObservableFunction<T> = T extends () => infer t ? t | (() => t) : T;
|
|
84
|
-
type
|
|
84
|
+
type IsLookupFunction<T> = T extends (...args: infer P) => any ? P extends {
|
|
85
85
|
length: 1;
|
|
86
|
-
} ? P[0] extends string | ObservablePrimitive<string> ? true : false : false : false;
|
|
87
|
-
type ObservableNode<T, NT = NonNullable<T>> = [NT] extends [never] ? ObservablePrimitive<T> : IsStrictAny<T> extends true ? ObservableAny : [T] extends [Promise<infer t>] ? ObservableNode<t> : [T] extends [(key: infer K extends string) => infer t] ? [t] extends [ImmutableObservableBase<any>] ?
|
|
86
|
+
} ? P[0] extends string | ObservablePrimitive<string> | number | ObservablePrimitive<number> ? true : false : false : false;
|
|
87
|
+
type ObservableNode<T, NT = NonNullable<T>> = [NT] extends [never] ? ObservablePrimitive<T> : IsStrictAny<T> extends true ? ObservableAny : [T] extends [Promise<infer t>] ? ObservableNode<t> : [T] extends [(key: infer K extends string) => infer t] ? [t] extends [ImmutableObservableBase<any>] ? IsLookupFunction<T> extends true ? Observable<Record<K, t>> : t : IsLookupFunction<T> extends true ? Observable<Record<K, t>> & T : Observable<ObservableFunction<t>> : [NT] extends [ImmutableObservableBase<any>] ? NT : [NT] extends [Primitive$1] ? [NT] extends [boolean] ? ObservableBoolean : ObservablePrimitive<T> : NT extends Map<any, any> | WeakMap<any, any> ? ObservableMap<NT> : NT extends Set<infer U> ? ObservableSet<Set<UndefinedIf<U, IsNullable<T>>>> : NT extends WeakSet<any> ? ObservableSet<NT> : NT extends Array<infer U> ? ObservableArray<T, U> & ObservableChildren<T> : ObservableObject<T> & {};
|
|
88
88
|
type Observable<T = any> = ObservableNode<T> & {};
|
|
89
89
|
type ObservableParam<T = any> = ImmutableObservableSimple<T> & MutableObservableSimple;
|
|
90
90
|
type FixExpanded<T> = [T] extends [boolean] ? boolean : T;
|
package/index.js
CHANGED
|
@@ -1573,7 +1573,7 @@ function setKey(node, key, newValue, level) {
|
|
|
1573
1573
|
} while (parent = parent.parent);
|
|
1574
1574
|
}
|
|
1575
1575
|
const notify2 = !equals(savedValue, prevValue);
|
|
1576
|
-
const forceNotify = !notify2 && childNode.isComputing &&
|
|
1576
|
+
const forceNotify = !notify2 && childNode.isComputing && !isPrim;
|
|
1577
1577
|
if (notify2 || forceNotify) {
|
|
1578
1578
|
updateNodesAndNotify(node, savedValue, prevValue, childNode, isPrim, isRoot, level, forceNotify);
|
|
1579
1579
|
}
|
package/index.mjs
CHANGED
|
@@ -1571,7 +1571,7 @@ function setKey(node, key, newValue, level) {
|
|
|
1571
1571
|
} while (parent = parent.parent);
|
|
1572
1572
|
}
|
|
1573
1573
|
const notify2 = !equals(savedValue, prevValue);
|
|
1574
|
-
const forceNotify = !notify2 && childNode.isComputing &&
|
|
1574
|
+
const forceNotify = !notify2 && childNode.isComputing && !isPrim;
|
|
1575
1575
|
if (notify2 || forceNotify) {
|
|
1576
1576
|
updateNodesAndNotify(node, savedValue, prevValue, childNode, isPrim, isRoot, level, forceNotify);
|
|
1577
1577
|
}
|
package/package.json
CHANGED
package/react.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ReactElement, FC, LegacyRef, ComponentClass, DependencyList, ReducerWithoutAction, ReducerStateWithoutAction, DispatchWithoutAction, Reducer, ReducerState, Dispatch, ReducerAction } from 'react';
|
|
3
|
-
import { ObservableParam, Observable, ObservableBoolean, Selector, RecursiveValueOrFunction,
|
|
3
|
+
import { ObservableParam, Observable, ObservableBoolean, Selector, RecursiveValueOrFunction, ObserveOptions, ObserveEvent, ObserveEventCallback } from '@legendapp/state';
|
|
4
4
|
|
|
5
5
|
declare function Computed({ children }: {
|
|
6
6
|
children: ObservableParam | (() => ReactNode);
|
|
@@ -140,11 +140,14 @@ declare function useObservableReducer<R extends Reducer<any, any>, I>(reducer: R
|
|
|
140
140
|
declare function useObservableReducer<R extends Reducer<any, any>, I>(reducer: R, initializerArg: I, initializer: (arg: I) => ReducerState<R>): [Observable<ReducerState<R>>, Dispatch<ReducerAction<R>>];
|
|
141
141
|
declare function useObservableReducer<R extends Reducer<any, any>>(reducer: R, initialState: ReducerState<R>, initializer?: undefined): [Observable<ReducerState<R>>, Dispatch<ReducerAction<R>>];
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
interface UseObserveOptions extends ObserveOptions {
|
|
144
|
+
deps?: any[];
|
|
145
|
+
}
|
|
146
|
+
declare function useObserve<T>(run: (e: ObserveEvent<T>) => T | void, options?: UseObserveOptions): () => void;
|
|
147
|
+
declare function useObserve<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?: UseObserveOptions): () => void;
|
|
145
148
|
|
|
146
|
-
declare function useObserveEffect<T>(run: (e: ObserveEvent<T>) => T | void, options?:
|
|
147
|
-
declare function useObserveEffect<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?:
|
|
149
|
+
declare function useObserveEffect<T>(run: (e: ObserveEvent<T>) => T | void, options?: UseObserveOptions): void;
|
|
150
|
+
declare function useObserveEffect<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?: UseObserveOptions): void;
|
|
148
151
|
|
|
149
152
|
declare function useSelector<T>(selector: Selector<T>, options?: UseSelectorOptions): T;
|
|
150
153
|
|
|
@@ -154,4 +157,4 @@ declare const useUnmountOnce: typeof useUnmount;
|
|
|
154
157
|
declare function useWhen<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<any>;
|
|
155
158
|
declare function useWhenReady<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<any>;
|
|
156
159
|
|
|
157
|
-
export { type BindKey, type BindKeys, Computed, type ExtractFCPropsType, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, Reactive, type ShapeWith$, type ShapeWithNew$, type ShapeWithPick$, Show, Switch, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useComputed, useEffectOnce, useIsMounted, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useWhen, useWhenReady };
|
|
160
|
+
export { type BindKey, type BindKeys, Computed, type ExtractFCPropsType, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, Reactive, type ShapeWith$, type ShapeWithNew$, type ShapeWithPick$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useComputed, useEffectOnce, useIsMounted, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useWhen, useWhenReady };
|
package/react.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ReactElement, FC, LegacyRef, ComponentClass, DependencyList, ReducerWithoutAction, ReducerStateWithoutAction, DispatchWithoutAction, Reducer, ReducerState, Dispatch, ReducerAction } from 'react';
|
|
3
|
-
import { ObservableParam, Observable, ObservableBoolean, Selector, RecursiveValueOrFunction,
|
|
3
|
+
import { ObservableParam, Observable, ObservableBoolean, Selector, RecursiveValueOrFunction, ObserveOptions, ObserveEvent, ObserveEventCallback } from '@legendapp/state';
|
|
4
4
|
|
|
5
5
|
declare function Computed({ children }: {
|
|
6
6
|
children: ObservableParam | (() => ReactNode);
|
|
@@ -140,11 +140,14 @@ declare function useObservableReducer<R extends Reducer<any, any>, I>(reducer: R
|
|
|
140
140
|
declare function useObservableReducer<R extends Reducer<any, any>, I>(reducer: R, initializerArg: I, initializer: (arg: I) => ReducerState<R>): [Observable<ReducerState<R>>, Dispatch<ReducerAction<R>>];
|
|
141
141
|
declare function useObservableReducer<R extends Reducer<any, any>>(reducer: R, initialState: ReducerState<R>, initializer?: undefined): [Observable<ReducerState<R>>, Dispatch<ReducerAction<R>>];
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
interface UseObserveOptions extends ObserveOptions {
|
|
144
|
+
deps?: any[];
|
|
145
|
+
}
|
|
146
|
+
declare function useObserve<T>(run: (e: ObserveEvent<T>) => T | void, options?: UseObserveOptions): () => void;
|
|
147
|
+
declare function useObserve<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?: UseObserveOptions): () => void;
|
|
145
148
|
|
|
146
|
-
declare function useObserveEffect<T>(run: (e: ObserveEvent<T>) => T | void, options?:
|
|
147
|
-
declare function useObserveEffect<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?:
|
|
149
|
+
declare function useObserveEffect<T>(run: (e: ObserveEvent<T>) => T | void, options?: UseObserveOptions): void;
|
|
150
|
+
declare function useObserveEffect<T>(selector: Selector<T>, reaction?: (e: ObserveEventCallback<T>) => any, options?: UseObserveOptions): void;
|
|
148
151
|
|
|
149
152
|
declare function useSelector<T>(selector: Selector<T>, options?: UseSelectorOptions): T;
|
|
150
153
|
|
|
@@ -154,4 +157,4 @@ declare const useUnmountOnce: typeof useUnmount;
|
|
|
154
157
|
declare function useWhen<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<any>;
|
|
155
158
|
declare function useWhenReady<T>(predicate: Selector<T>, effect: (value: T) => any | (() => any)): Promise<any>;
|
|
156
159
|
|
|
157
|
-
export { type BindKey, type BindKeys, Computed, type ExtractFCPropsType, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, Reactive, type ShapeWith$, type ShapeWithNew$, type ShapeWithPick$, Show, Switch, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useComputed, useEffectOnce, useIsMounted, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useWhen, useWhenReady };
|
|
160
|
+
export { type BindKey, type BindKeys, Computed, type ExtractFCPropsType, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, Reactive, type ShapeWith$, type ShapeWithNew$, type ShapeWithPick$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useComputed, useEffectOnce, useIsMounted, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useWhen, useWhenReady };
|
package/react.js
CHANGED
|
@@ -495,8 +495,16 @@ function useObserve(selector, reactionOrOptions, options) {
|
|
|
495
495
|
} else {
|
|
496
496
|
options = reactionOrOptions;
|
|
497
497
|
}
|
|
498
|
+
const deps = options == null ? void 0 : options.deps;
|
|
499
|
+
const depsObs$ = deps ? useObservable(deps) : void 0;
|
|
500
|
+
if (depsObs$) {
|
|
501
|
+
depsObs$.set(deps);
|
|
502
|
+
}
|
|
498
503
|
const ref = React.useRef({});
|
|
499
|
-
ref.current.selector =
|
|
504
|
+
ref.current.selector = deps ? () => {
|
|
505
|
+
depsObs$ == null ? void 0 : depsObs$.get();
|
|
506
|
+
return state.computeSelector(selector);
|
|
507
|
+
} : selector;
|
|
500
508
|
ref.current.reaction = reaction;
|
|
501
509
|
if (!ref.current.dispose) {
|
|
502
510
|
ref.current.dispose = state.observe(
|
|
@@ -521,12 +529,18 @@ function useObserveEffect(selector, reactionOrOptions, options) {
|
|
|
521
529
|
} else {
|
|
522
530
|
options = reactionOrOptions;
|
|
523
531
|
}
|
|
532
|
+
const deps = options == null ? void 0 : options.deps;
|
|
533
|
+
const depsObs$ = deps ? useObservable(deps) : void 0;
|
|
534
|
+
if (depsObs$) {
|
|
535
|
+
depsObs$.set(deps);
|
|
536
|
+
}
|
|
524
537
|
const ref = React.useRef({ selector });
|
|
525
538
|
ref.current = { selector, reaction };
|
|
526
539
|
useMountOnce(
|
|
527
540
|
() => state.observe(
|
|
528
541
|
(e) => {
|
|
529
542
|
const { selector: selector2 } = ref.current;
|
|
543
|
+
depsObs$ == null ? void 0 : depsObs$.get();
|
|
530
544
|
return state.isFunction(selector2) ? selector2(e) : selector2;
|
|
531
545
|
},
|
|
532
546
|
(e) => {
|
package/react.mjs
CHANGED
|
@@ -489,8 +489,16 @@ function useObserve(selector, reactionOrOptions, options) {
|
|
|
489
489
|
} else {
|
|
490
490
|
options = reactionOrOptions;
|
|
491
491
|
}
|
|
492
|
+
const deps = options == null ? void 0 : options.deps;
|
|
493
|
+
const depsObs$ = deps ? useObservable(deps) : void 0;
|
|
494
|
+
if (depsObs$) {
|
|
495
|
+
depsObs$.set(deps);
|
|
496
|
+
}
|
|
492
497
|
const ref = useRef({});
|
|
493
|
-
ref.current.selector =
|
|
498
|
+
ref.current.selector = deps ? () => {
|
|
499
|
+
depsObs$ == null ? void 0 : depsObs$.get();
|
|
500
|
+
return computeSelector(selector);
|
|
501
|
+
} : selector;
|
|
494
502
|
ref.current.reaction = reaction;
|
|
495
503
|
if (!ref.current.dispose) {
|
|
496
504
|
ref.current.dispose = observe(
|
|
@@ -515,12 +523,18 @@ function useObserveEffect(selector, reactionOrOptions, options) {
|
|
|
515
523
|
} else {
|
|
516
524
|
options = reactionOrOptions;
|
|
517
525
|
}
|
|
526
|
+
const deps = options == null ? void 0 : options.deps;
|
|
527
|
+
const depsObs$ = deps ? useObservable(deps) : void 0;
|
|
528
|
+
if (depsObs$) {
|
|
529
|
+
depsObs$.set(deps);
|
|
530
|
+
}
|
|
518
531
|
const ref = useRef({ selector });
|
|
519
532
|
ref.current = { selector, reaction };
|
|
520
533
|
useMountOnce(
|
|
521
534
|
() => observe(
|
|
522
535
|
(e) => {
|
|
523
536
|
const { selector: selector2 } = ref.current;
|
|
537
|
+
depsObs$ == null ? void 0 : depsObs$.get();
|
|
524
538
|
return isFunction(selector2) ? selector2(e) : selector2;
|
|
525
539
|
},
|
|
526
540
|
(e) => {
|
package/sync.js
CHANGED
|
@@ -765,7 +765,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
765
765
|
let unsubscribe = void 0;
|
|
766
766
|
sync = async () => {
|
|
767
767
|
var _a;
|
|
768
|
-
if (isSynced && state.shouldIgnoreUnobserved(node, sync)) {
|
|
768
|
+
if (isSynced && (!getNodeValue(getNode(syncState$)).isSyncEnabled || state.shouldIgnoreUnobserved(node, sync))) {
|
|
769
769
|
if (unsubscribe) {
|
|
770
770
|
isSubscribed = false;
|
|
771
771
|
unsubscribe();
|
|
@@ -958,9 +958,9 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
958
958
|
if (node.activationState) {
|
|
959
959
|
node.activationState.waitFor = void 0;
|
|
960
960
|
}
|
|
961
|
-
state.whenReady(waitFor, runGet);
|
|
961
|
+
state.whenReady(waitFor, () => state.trackSelector(runGet, sync));
|
|
962
962
|
} else {
|
|
963
|
-
runGet
|
|
963
|
+
state.trackSelector(runGet, sync);
|
|
964
964
|
}
|
|
965
965
|
} else {
|
|
966
966
|
syncState$.assign({
|
package/sync.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isObject, isDate, isNullOrUndefined, isString, endBatch, beginBatch, isFunction, syncState, when, linked, internal, observable, isPromise, mergeIntoObservable, isEmpty, whenReady, shouldIgnoreUnobserved, constructObjectWithPath, setAtPath, isArray } from '@legendapp/state';
|
|
1
|
+
import { isObject, isDate, isNullOrUndefined, isString, endBatch, beginBatch, isFunction, syncState, when, linked, internal, observable, isPromise, mergeIntoObservable, isEmpty, whenReady, trackSelector, shouldIgnoreUnobserved, constructObjectWithPath, setAtPath, isArray } from '@legendapp/state';
|
|
2
2
|
|
|
3
3
|
// src/sync/configureObservableSync.ts
|
|
4
4
|
var observableSyncConfiguration = {};
|
|
@@ -763,7 +763,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
763
763
|
let unsubscribe = void 0;
|
|
764
764
|
sync = async () => {
|
|
765
765
|
var _a;
|
|
766
|
-
if (isSynced && shouldIgnoreUnobserved(node, sync)) {
|
|
766
|
+
if (isSynced && (!getNodeValue(getNode(syncState$)).isSyncEnabled || shouldIgnoreUnobserved(node, sync))) {
|
|
767
767
|
if (unsubscribe) {
|
|
768
768
|
isSubscribed = false;
|
|
769
769
|
unsubscribe();
|
|
@@ -956,9 +956,9 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
956
956
|
if (node.activationState) {
|
|
957
957
|
node.activationState.waitFor = void 0;
|
|
958
958
|
}
|
|
959
|
-
whenReady(waitFor, runGet);
|
|
959
|
+
whenReady(waitFor, () => trackSelector(runGet, sync));
|
|
960
960
|
} else {
|
|
961
|
-
runGet
|
|
961
|
+
trackSelector(runGet, sync);
|
|
962
962
|
}
|
|
963
963
|
} else {
|
|
964
964
|
syncState$.assign({
|