@legendapp/state 0.13.2 → 0.14.0
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.js +45 -37
- package/index.js.map +1 -1
- package/index.mjs +45 -37
- package/index.mjs.map +1 -1
- package/package.json +1 -1
- package/persist.js +1 -1
- package/persist.js.map +1 -1
- package/persist.mjs +1 -1
- package/persist.mjs.map +1 -1
- package/react-native.js +37 -28
- package/react-native.js.map +1 -1
- package/react-native.mjs +38 -29
- package/react-native.mjs.map +1 -1
- package/react.d.ts +1 -1
- package/react.js +63 -35
- package/react.js.map +1 -1
- package/react.mjs +63 -36
- package/react.mjs.map +1 -1
- package/src/observableInterfaces.d.ts +6 -9
- package/src/persist/persistObservable.d.ts +2 -2
- package/src/react/{Isolate.d.ts → controlFlow.d.ts} +14 -0
package/package.json
CHANGED
package/persist.js
CHANGED
|
@@ -90,7 +90,7 @@ async function onObsChange(obsState, localState, persistOptions, value, getPrevi
|
|
|
90
90
|
const saveRemote = !tempDisableSaveRemote && persistOptions.remote && !persistOptions.remote.readonly;
|
|
91
91
|
if (local) {
|
|
92
92
|
if (!obsState.isLoadedLocal) {
|
|
93
|
-
console.error('[legend-state]: WARNING: An observable was changed before being loaded from persistence');
|
|
93
|
+
console.error('[legend-state]: WARNING: An observable was changed before being loaded from persistence', local);
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
96
|
// If saving remotely convert symbolDateModified to dateModifiedKey before saving locally
|
package/persist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/local-storage.ts","../../src/persist/persistHelpers.ts","../../src/persist/persistObservable.ts"],"sourcesContent":[null,null,null,null],"names":["isObject","symbolDateModified","mergeIntoObservable","observableBatcher","observable"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"persist.js","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/local-storage.ts","../../src/persist/persistHelpers.ts","../../src/persist/persistObservable.ts"],"sourcesContent":[null,null,null,null],"names":["isObject","symbolDateModified","mergeIntoObservable","observableBatcher","observable"],"mappings":"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"}
|
package/persist.mjs
CHANGED
|
@@ -86,7 +86,7 @@ async function onObsChange(obsState, localState, persistOptions, value, getPrevi
|
|
|
86
86
|
const saveRemote = !tempDisableSaveRemote && persistOptions.remote && !persistOptions.remote.readonly;
|
|
87
87
|
if (local) {
|
|
88
88
|
if (!obsState.isLoadedLocal) {
|
|
89
|
-
console.error('[legend-state]: WARNING: An observable was changed before being loaded from persistence');
|
|
89
|
+
console.error('[legend-state]: WARNING: An observable was changed before being loaded from persistence', local);
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
// If saving remotely convert symbolDateModified to dateModifiedKey before saving locally
|
package/persist.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.mjs","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/local-storage.ts","../../src/persist/persistHelpers.ts","../../src/persist/persistObservable.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"persist.mjs","sources":["../../src/persist/configureObservablePersistence.ts","../../src/persist/local-storage.ts","../../src/persist/persistHelpers.ts","../../src/persist/persistObservable.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
|
package/react-native.js
CHANGED
|
@@ -13,40 +13,23 @@ function useForceRender() {
|
|
|
13
13
|
|
|
14
14
|
function useObserver(fn, updateFn) {
|
|
15
15
|
var _a;
|
|
16
|
-
const
|
|
16
|
+
const refListeners = react.useRef([]);
|
|
17
|
+
const listeners = refListeners.current;
|
|
18
|
+
// Cleanup old listeners before tracking
|
|
19
|
+
if (listeners.length > 0) {
|
|
20
|
+
cleanup(listeners);
|
|
21
|
+
}
|
|
17
22
|
// Cache previous tracking nodes since this might be nested from another observing component
|
|
18
23
|
const trackingPrev = state.tracking.nodes;
|
|
19
24
|
// Reset tracking nodes
|
|
20
25
|
state.tracking.nodes = new Map();
|
|
21
|
-
let nodes;
|
|
22
|
-
// Create the listener effect before calling fn so that it gets called before
|
|
23
|
-
// effects in the component
|
|
24
|
-
const effect = () => {
|
|
25
|
-
// If we have pre-mount listeners, clear them off
|
|
26
|
-
if (refFirstListeners.current) {
|
|
27
|
-
refFirstListeners.current();
|
|
28
|
-
refFirstListeners.current = undefined;
|
|
29
|
-
}
|
|
30
|
-
const listeners = [];
|
|
31
|
-
// Listen to tracked nodes
|
|
32
|
-
for (let tracked of nodes) {
|
|
33
|
-
const { node, shallow } = tracked[1];
|
|
34
|
-
listeners.push(shallow ? state.onChangeShallow(node, updateFn) : state.onChange(node, updateFn));
|
|
35
|
-
}
|
|
36
|
-
// Cleanup listeners
|
|
37
|
-
return () => {
|
|
38
|
-
for (let i = 0; i < listeners.length; i++) {
|
|
39
|
-
listeners[i]();
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
react.useEffect(effect);
|
|
44
26
|
// Calling the function fills up the tracking nodes
|
|
45
27
|
const ret = fn();
|
|
46
|
-
nodes = state.tracking.nodes;
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
|
|
28
|
+
const nodes = state.tracking.nodes;
|
|
29
|
+
// Listen to tracked nodes
|
|
30
|
+
for (let tracked of nodes) {
|
|
31
|
+
const { node, shallow } = tracked[1];
|
|
32
|
+
listeners.push(state.onChange(node, updateFn, false, shallow));
|
|
50
33
|
}
|
|
51
34
|
// Do tracing if it was requested
|
|
52
35
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -57,8 +40,34 @@ function useObserver(fn, updateFn) {
|
|
|
57
40
|
}
|
|
58
41
|
// Restore previous tracking nodes
|
|
59
42
|
state.tracking.nodes = trackingPrev;
|
|
43
|
+
// Cleanup listeners on unmounts
|
|
44
|
+
react.useEffect(() => {
|
|
45
|
+
let listeners = refListeners.current;
|
|
46
|
+
// Workaround for React 18's double calling useEffect. If this is the
|
|
47
|
+
// second useEffect, set up listeners again.
|
|
48
|
+
if (process.env.NODE_ENV === 'development' && refListeners.current === undefined) {
|
|
49
|
+
listeners = refListeners.current = [];
|
|
50
|
+
// Re-listen to tracked nodes
|
|
51
|
+
for (let tracked of nodes) {
|
|
52
|
+
const { node, shallow } = tracked[1];
|
|
53
|
+
listeners.push(state.onChange(node, updateFn, false, shallow));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return () => {
|
|
57
|
+
cleanup(listeners);
|
|
58
|
+
// Set it to undefined so it would trigger the above React 18 workaround
|
|
59
|
+
refListeners.current = undefined;
|
|
60
|
+
};
|
|
61
|
+
}, []);
|
|
60
62
|
return ret;
|
|
61
63
|
}
|
|
64
|
+
function cleanup(listeners) {
|
|
65
|
+
// Cleanup listeners
|
|
66
|
+
for (let i = 0; i < listeners.length; i++) {
|
|
67
|
+
listeners[i]();
|
|
68
|
+
}
|
|
69
|
+
listeners.length = 0;
|
|
70
|
+
}
|
|
62
71
|
|
|
63
72
|
const hasSymbol = typeof Symbol === 'function' && Symbol.for;
|
|
64
73
|
// Extracting the forwardRef inspired by https://github.com/mobxjs/mobx/blob/main/packages/mobx-react-lite/src/observer.ts
|
package/react-native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native.js","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react-native/components.tsx"],"sourcesContent":[null,null,null,null],"names":["useReducer","useCallback","useRef","tracking","
|
|
1
|
+
{"version":3,"file":"react-native.js","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react-native/components.tsx"],"sourcesContent":[null,null,null,null],"names":["useReducer","useCallback","useRef","tracking","onChange","useEffect","forwardRef","memo","isFunction","createElement","LS","RNTextInput","RNSwitch"],"mappings":"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"}
|
package/react-native.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tracking,
|
|
1
|
+
import { tracking, onChange, isFunction } from '@legendapp/state';
|
|
2
2
|
import { useReducer, useCallback, useRef, useEffect, forwardRef, memo, createElement } from 'react';
|
|
3
3
|
import { TextInput, Switch } from 'react-native';
|
|
4
4
|
|
|
@@ -9,40 +9,23 @@ function useForceRender() {
|
|
|
9
9
|
|
|
10
10
|
function useObserver(fn, updateFn) {
|
|
11
11
|
var _a;
|
|
12
|
-
const
|
|
12
|
+
const refListeners = useRef([]);
|
|
13
|
+
const listeners = refListeners.current;
|
|
14
|
+
// Cleanup old listeners before tracking
|
|
15
|
+
if (listeners.length > 0) {
|
|
16
|
+
cleanup(listeners);
|
|
17
|
+
}
|
|
13
18
|
// Cache previous tracking nodes since this might be nested from another observing component
|
|
14
19
|
const trackingPrev = tracking.nodes;
|
|
15
20
|
// Reset tracking nodes
|
|
16
21
|
tracking.nodes = new Map();
|
|
17
|
-
let nodes;
|
|
18
|
-
// Create the listener effect before calling fn so that it gets called before
|
|
19
|
-
// effects in the component
|
|
20
|
-
const effect = () => {
|
|
21
|
-
// If we have pre-mount listeners, clear them off
|
|
22
|
-
if (refFirstListeners.current) {
|
|
23
|
-
refFirstListeners.current();
|
|
24
|
-
refFirstListeners.current = undefined;
|
|
25
|
-
}
|
|
26
|
-
const listeners = [];
|
|
27
|
-
// Listen to tracked nodes
|
|
28
|
-
for (let tracked of nodes) {
|
|
29
|
-
const { node, shallow } = tracked[1];
|
|
30
|
-
listeners.push(shallow ? onChangeShallow(node, updateFn) : onChange(node, updateFn));
|
|
31
|
-
}
|
|
32
|
-
// Cleanup listeners
|
|
33
|
-
return () => {
|
|
34
|
-
for (let i = 0; i < listeners.length; i++) {
|
|
35
|
-
listeners[i]();
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
useEffect(effect);
|
|
40
22
|
// Calling the function fills up the tracking nodes
|
|
41
23
|
const ret = fn();
|
|
42
|
-
nodes = tracking.nodes;
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
24
|
+
const nodes = tracking.nodes;
|
|
25
|
+
// Listen to tracked nodes
|
|
26
|
+
for (let tracked of nodes) {
|
|
27
|
+
const { node, shallow } = tracked[1];
|
|
28
|
+
listeners.push(onChange(node, updateFn, false, shallow));
|
|
46
29
|
}
|
|
47
30
|
// Do tracing if it was requested
|
|
48
31
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -53,8 +36,34 @@ function useObserver(fn, updateFn) {
|
|
|
53
36
|
}
|
|
54
37
|
// Restore previous tracking nodes
|
|
55
38
|
tracking.nodes = trackingPrev;
|
|
39
|
+
// Cleanup listeners on unmounts
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
let listeners = refListeners.current;
|
|
42
|
+
// Workaround for React 18's double calling useEffect. If this is the
|
|
43
|
+
// second useEffect, set up listeners again.
|
|
44
|
+
if (process.env.NODE_ENV === 'development' && refListeners.current === undefined) {
|
|
45
|
+
listeners = refListeners.current = [];
|
|
46
|
+
// Re-listen to tracked nodes
|
|
47
|
+
for (let tracked of nodes) {
|
|
48
|
+
const { node, shallow } = tracked[1];
|
|
49
|
+
listeners.push(onChange(node, updateFn, false, shallow));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return () => {
|
|
53
|
+
cleanup(listeners);
|
|
54
|
+
// Set it to undefined so it would trigger the above React 18 workaround
|
|
55
|
+
refListeners.current = undefined;
|
|
56
|
+
};
|
|
57
|
+
}, []);
|
|
56
58
|
return ret;
|
|
57
59
|
}
|
|
60
|
+
function cleanup(listeners) {
|
|
61
|
+
// Cleanup listeners
|
|
62
|
+
for (let i = 0; i < listeners.length; i++) {
|
|
63
|
+
listeners[i]();
|
|
64
|
+
}
|
|
65
|
+
listeners.length = 0;
|
|
66
|
+
}
|
|
58
67
|
|
|
59
68
|
const hasSymbol = typeof Symbol === 'function' && Symbol.for;
|
|
60
69
|
// Extracting the forwardRef inspired by https://github.com/mobxjs/mobx/blob/main/packages/mobx-react-lite/src/observer.ts
|
package/react-native.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native.mjs","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react-native/components.tsx"],"sourcesContent":[null,null,null,null],"names":["RNTextInput","RNSwitch"],"mappings":";;;;SAEgB,cAAc,GAAA;AAC1B,IAAA,MAAM,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,WAAW,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD;;ACFgB,SAAA,WAAW,CAAI,EAAW,EAAE,QAAoB,EAAA;;AAC5D,IAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"react-native.mjs","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react-native/components.tsx"],"sourcesContent":[null,null,null,null],"names":["RNTextInput","RNSwitch"],"mappings":"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"}
|
package/react.d.ts
CHANGED
package/react.js
CHANGED
|
@@ -12,40 +12,23 @@ function useForceRender() {
|
|
|
12
12
|
|
|
13
13
|
function useObserver(fn, updateFn) {
|
|
14
14
|
var _a;
|
|
15
|
-
const
|
|
15
|
+
const refListeners = react.useRef([]);
|
|
16
|
+
const listeners = refListeners.current;
|
|
17
|
+
// Cleanup old listeners before tracking
|
|
18
|
+
if (listeners.length > 0) {
|
|
19
|
+
cleanup(listeners);
|
|
20
|
+
}
|
|
16
21
|
// Cache previous tracking nodes since this might be nested from another observing component
|
|
17
22
|
const trackingPrev = state.tracking.nodes;
|
|
18
23
|
// Reset tracking nodes
|
|
19
24
|
state.tracking.nodes = new Map();
|
|
20
|
-
let nodes;
|
|
21
|
-
// Create the listener effect before calling fn so that it gets called before
|
|
22
|
-
// effects in the component
|
|
23
|
-
const effect = () => {
|
|
24
|
-
// If we have pre-mount listeners, clear them off
|
|
25
|
-
if (refFirstListeners.current) {
|
|
26
|
-
refFirstListeners.current();
|
|
27
|
-
refFirstListeners.current = undefined;
|
|
28
|
-
}
|
|
29
|
-
const listeners = [];
|
|
30
|
-
// Listen to tracked nodes
|
|
31
|
-
for (let tracked of nodes) {
|
|
32
|
-
const { node, shallow } = tracked[1];
|
|
33
|
-
listeners.push(shallow ? state.onChangeShallow(node, updateFn) : state.onChange(node, updateFn));
|
|
34
|
-
}
|
|
35
|
-
// Cleanup listeners
|
|
36
|
-
return () => {
|
|
37
|
-
for (let i = 0; i < listeners.length; i++) {
|
|
38
|
-
listeners[i]();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
react.useEffect(effect);
|
|
43
25
|
// Calling the function fills up the tracking nodes
|
|
44
26
|
const ret = fn();
|
|
45
|
-
nodes = state.tracking.nodes;
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
27
|
+
const nodes = state.tracking.nodes;
|
|
28
|
+
// Listen to tracked nodes
|
|
29
|
+
for (let tracked of nodes) {
|
|
30
|
+
const { node, shallow } = tracked[1];
|
|
31
|
+
listeners.push(state.onChange(node, updateFn, false, shallow));
|
|
49
32
|
}
|
|
50
33
|
// Do tracing if it was requested
|
|
51
34
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -56,8 +39,34 @@ function useObserver(fn, updateFn) {
|
|
|
56
39
|
}
|
|
57
40
|
// Restore previous tracking nodes
|
|
58
41
|
state.tracking.nodes = trackingPrev;
|
|
42
|
+
// Cleanup listeners on unmounts
|
|
43
|
+
react.useEffect(() => {
|
|
44
|
+
let listeners = refListeners.current;
|
|
45
|
+
// Workaround for React 18's double calling useEffect. If this is the
|
|
46
|
+
// second useEffect, set up listeners again.
|
|
47
|
+
if (process.env.NODE_ENV === 'development' && refListeners.current === undefined) {
|
|
48
|
+
listeners = refListeners.current = [];
|
|
49
|
+
// Re-listen to tracked nodes
|
|
50
|
+
for (let tracked of nodes) {
|
|
51
|
+
const { node, shallow } = tracked[1];
|
|
52
|
+
listeners.push(state.onChange(node, updateFn, false, shallow));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return () => {
|
|
56
|
+
cleanup(listeners);
|
|
57
|
+
// Set it to undefined so it would trigger the above React 18 workaround
|
|
58
|
+
refListeners.current = undefined;
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
59
61
|
return ret;
|
|
60
62
|
}
|
|
63
|
+
function cleanup(listeners) {
|
|
64
|
+
// Cleanup listeners
|
|
65
|
+
for (let i = 0; i < listeners.length; i++) {
|
|
66
|
+
listeners[i]();
|
|
67
|
+
}
|
|
68
|
+
listeners.length = 0;
|
|
69
|
+
}
|
|
61
70
|
|
|
62
71
|
const hasSymbol = typeof Symbol === 'function' && Symbol.for;
|
|
63
72
|
// Extracting the forwardRef inspired by https://github.com/mobxjs/mobx/blob/main/packages/mobx-react-lite/src/observer.ts
|
|
@@ -122,12 +131,6 @@ exports.LS = void 0;
|
|
|
122
131
|
LS.select = Binder('select');
|
|
123
132
|
})(exports.LS || (exports.LS = {}));
|
|
124
133
|
|
|
125
|
-
const symbolIsObservable = Symbol('isObservable');
|
|
126
|
-
|
|
127
|
-
function isObservable(obs) {
|
|
128
|
-
return obs && !!obs[symbolIsObservable];
|
|
129
|
-
}
|
|
130
|
-
|
|
131
134
|
const Isolate = observer(function Isolate({ children, }) {
|
|
132
135
|
return children();
|
|
133
136
|
});
|
|
@@ -136,7 +139,7 @@ const Memo = observer(function Memo({ children }) {
|
|
|
136
139
|
}, () => true);
|
|
137
140
|
const Show = observer(function Show({ if: if_, else: else_, children, memo, }) {
|
|
138
141
|
if_ = if_();
|
|
139
|
-
if (isObservable(if_)) {
|
|
142
|
+
if (state.isObservable(if_)) {
|
|
140
143
|
if_ = if_.observe(true);
|
|
141
144
|
}
|
|
142
145
|
return if_
|
|
@@ -145,6 +148,30 @@ const Show = observer(function Show({ if: if_, else: else_, children, memo, }) {
|
|
|
145
148
|
? else_()
|
|
146
149
|
: null;
|
|
147
150
|
});
|
|
151
|
+
const For = observer(function For({ each, item, children, }) {
|
|
152
|
+
if (!each)
|
|
153
|
+
return null;
|
|
154
|
+
// Get the raw value with a shallow listener so this list only re-renders
|
|
155
|
+
// when the array length changes
|
|
156
|
+
const v = each.get(state.shallow);
|
|
157
|
+
if (!v)
|
|
158
|
+
return null;
|
|
159
|
+
// Get the appropriate id field
|
|
160
|
+
const id = v.length > 0 ? (v[0].id ? 'id' : v[0]._id ? '_id' : v[0].__id ? '__id' : undefined) : undefined;
|
|
161
|
+
// The child function gets wrapped in a memoized observer component
|
|
162
|
+
if (!item && children) {
|
|
163
|
+
item = react.useMemo(() => observer(({ item }) => children(item)), []);
|
|
164
|
+
}
|
|
165
|
+
// Create the child elements
|
|
166
|
+
let out = [];
|
|
167
|
+
for (let i = 0; i < v.length; i++) {
|
|
168
|
+
if (v[i]) {
|
|
169
|
+
const key = v[i][id];
|
|
170
|
+
out.push(react.createElement(item, { key: key, item: each[i] }));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return out;
|
|
174
|
+
});
|
|
148
175
|
|
|
149
176
|
function useComputed(selector, deps) {
|
|
150
177
|
// Do all the computed magic inside a useMemo so we can get an initial value
|
|
@@ -179,6 +206,7 @@ function useObservable(initialValue) {
|
|
|
179
206
|
}
|
|
180
207
|
|
|
181
208
|
exports.Binder = Binder;
|
|
209
|
+
exports.For = For;
|
|
182
210
|
exports.Isolate = Isolate;
|
|
183
211
|
exports.Memo = Memo;
|
|
184
212
|
exports.Show = Show;
|
package/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react/components.tsx","../../src/
|
|
1
|
+
{"version":3,"file":"react.js","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react/components.tsx","../../src/react/controlFlow.tsx","../../src/react/useComputed.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["useReducer","useCallback","useRef","tracking","onChange","useEffect","forwardRef","memo","isFunction","createElement","LS","isObservable","useMemo","shallow","useState","observable"],"mappings":"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"}
|