@legendapp/state 0.15.0-next.7 → 0.15.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.
Files changed (61) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/babel.js +304 -874
  3. package/babel.js.map +1 -1
  4. package/index.d.ts +7 -2
  5. package/index.js +155 -142
  6. package/index.js.map +1 -1
  7. package/index.mjs +149 -142
  8. package/index.mjs.map +1 -1
  9. package/internal.d.ts +1 -1
  10. package/internal.js +4 -0
  11. package/internal.js.map +1 -1
  12. package/internal.mjs +1 -1
  13. package/package.json +15 -17
  14. package/react-components.d.ts +1 -0
  15. package/react-components.js +42 -0
  16. package/react-components.js.map +1 -0
  17. package/react-components.mjs +40 -0
  18. package/react-components.mjs.map +1 -0
  19. package/react-native-components.d.ts +1 -0
  20. package/react-native-components.js +38 -0
  21. package/react-native-components.js.map +1 -0
  22. package/react-native-components.mjs +36 -0
  23. package/react-native-components.mjs.map +1 -0
  24. package/react.d.ts +1 -0
  25. package/react.js +139 -87
  26. package/react.js.map +1 -1
  27. package/react.mjs +136 -89
  28. package/react.mjs.map +1 -1
  29. package/src/globals.d.ts +3 -1
  30. package/src/helpers.d.ts +3 -1
  31. package/src/observableInterfaces.d.ts +18 -16
  32. package/src/observe.d.ts +3 -0
  33. package/src/onChange.d.ts +1 -5
  34. package/src/react/flow.d.ts +31 -0
  35. package/src/react/useComputed.d.ts +6 -1
  36. package/src/react/useObserve.d.ts +1 -0
  37. package/src/{react/components.d.ts → react-components/react-components.d.ts} +4 -10
  38. package/src/{react-native/components.d.ts → react-native-components/rn-components.d.ts} +4 -8
  39. package/src/tracking.d.ts +1 -1
  40. package/src/when.d.ts +1 -5
  41. package/trace.js +4 -2
  42. package/trace.js.map +1 -1
  43. package/trace.mjs +5 -3
  44. package/trace.mjs.map +1 -1
  45. package/types.d.ts +15 -0
  46. package/react-native-types.d.ts +0 -39
  47. package/react-native.d.ts +0 -1
  48. package/react-native.js +0 -146
  49. package/react-native.js.map +0 -1
  50. package/react-native.mjs +0 -142
  51. package/react-native.mjs.map +0 -1
  52. package/react-types.d.ts +0 -8
  53. package/reactivity.d.ts +0 -2
  54. package/reactivity.js +0 -200
  55. package/reactivity.js.map +0 -1
  56. package/reactivity.mjs +0 -192
  57. package/reactivity.mjs.map +0 -1
  58. package/src/effect.d.ts +0 -1
  59. package/src/react/controlFlow.d.ts +0 -28
  60. package/src/react/useObserver.d.ts +0 -1
  61. package/state-types.d.ts +0 -24
package/react.js CHANGED
@@ -2,84 +2,126 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
6
5
  var state = require('@legendapp/state');
6
+ var react = require('react');
7
7
 
8
8
  function useForceRender() {
9
9
  const [, forceRender] = react.useReducer((s) => s + 1, 0);
10
10
  return react.useCallback(() => forceRender(), []);
11
11
  }
12
12
 
13
- function useObserver(fn, updateFn) {
14
- var _a;
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
- }
21
- // Cache previous tracking nodes since this might be nested from another observing component
22
- const trackingPrev = state.tracking.nodes;
23
- // Reset tracking nodes
24
- state.tracking.nodes = new Map();
25
- // Calling the function fills up the tracking nodes
26
- const ret = fn();
27
- const nodes = state.tracking.nodes;
28
- // Listen to tracked nodes
29
- for (let tracked of nodes.values()) {
30
- const { node, track } = tracked;
31
- let options;
32
- if (track) {
33
- options = {
34
- shallow: track === state.Tracking.shallow,
35
- optimized: track === state.Tracking.optimized,
36
- };
13
+ /**
14
+ * Runs the specified selector, automatically tracking observable access and optionally re-rendering
15
+ * @param selector A computation function
16
+ * @param whenToRender When to re-render. false = never re-render, undefined = render if different, true = always render
17
+ */
18
+ function useComputed(selector, whenToRender) {
19
+ let inRun = true;
20
+ let ret = state.symbolUndef;
21
+ let cachedNodes;
22
+ const fr = whenToRender !== false && useForceRender();
23
+ const update = function () {
24
+ // If running, run and return the value
25
+ // Don't need to run the selector again if not running and alwaysUpdate
26
+ if (inRun || !whenToRender) {
27
+ const cur = selector();
28
+ // Re-render if not currently rendering and value has changed
29
+ if (!inRun && cur !== ret && whenToRender !== false) {
30
+ // Re-render if value changed
31
+ fr();
32
+ }
33
+ ret = cur;
37
34
  }
38
- listeners.push(state.onChange(node, updateFn, options));
39
- }
40
- // Do tracing if it was requested
41
- if (process.env.NODE_ENV === 'development') {
42
- (_a = state.tracking.listeners) === null || _a === void 0 ? void 0 : _a.call(state.tracking, nodes);
43
- if (state.tracking.updates) {
44
- updateFn = state.tracking.updates(updateFn);
35
+ else if (whenToRender) {
36
+ fr();
45
37
  }
46
- }
47
- // Restore previous tracking nodes
48
- state.tracking.nodes = trackingPrev;
49
- // Cleanup listeners on unmounts
50
- react.useEffect(() => {
51
- let listeners = refListeners.current;
52
- // Workaround for React 18's double calling useEffect. If this is the
53
- // second useEffect, set up listeners again.
54
- if (process.env.NODE_ENV === 'development' && refListeners.current === undefined) {
55
- listeners = refListeners.current = [];
56
- // Re-listen to tracked nodes. This should be copied from above.
57
- for (let tracked of nodes.values()) {
58
- const { node, track } = tracked;
59
- let options;
60
- if (track) {
61
- options = {
62
- shallow: track === state.Tracking.shallow,
63
- optimized: track === state.Tracking.optimized,
64
- };
65
- }
66
- listeners.push(state.onChange(node, updateFn, options));
67
- }
38
+ inRun = false;
39
+ // Workaround for React 18's double calling useEffect - cached the tracking nodes
40
+ if (process.env.NODE_ENV === 'development') {
41
+ cachedNodes = state.tracking.nodes;
68
42
  }
69
- return () => {
70
- cleanup(listeners);
71
- // Set it to undefined so it would trigger the above React 18 workaround
72
- refListeners.current = undefined;
73
- };
74
- }, []);
43
+ };
44
+ let dispose = state.observe(update);
45
+ if (process.env.NODE_ENV === 'development') {
46
+ react.useEffect(() => {
47
+ // Workaround for React 18's double calling useEffect. If this is the
48
+ // second useEffect, set up tracking again.
49
+ if (dispose === undefined) {
50
+ dispose = state.setupTracking(cachedNodes, update);
51
+ }
52
+ return () => {
53
+ dispose();
54
+ dispose = undefined;
55
+ };
56
+ });
57
+ }
58
+ else {
59
+ // Return dispose to cleanup before each render or on unmount
60
+ react.useEffect(() => dispose);
61
+ }
75
62
  return ret;
76
63
  }
77
- function cleanup(listeners) {
78
- // Cleanup listeners
79
- for (let i = 0; i < listeners.length; i++) {
80
- listeners[i]();
64
+
65
+ function computeProp(prop) {
66
+ return useComputed(() => {
67
+ let p = prop;
68
+ if (state.isFunction(p)) {
69
+ p = p();
70
+ }
71
+ if (state.isObservable(p)) {
72
+ p = p.get();
73
+ }
74
+ return p;
75
+ });
76
+ }
77
+ function Computed({ children }) {
78
+ return useComputed(children, true);
79
+ }
80
+ const Memo = react.memo(function Memo({ children }) {
81
+ return useComputed(children, true);
82
+ }, () => true);
83
+ function Show({ if: if_, else: else_, children, }) {
84
+ const value = computeProp(if_);
85
+ return (value
86
+ ? state.isFunction(children)
87
+ ? children(value)
88
+ : children
89
+ : else_
90
+ ? state.isFunction(else_)
91
+ ? else_()
92
+ : else_
93
+ : null);
94
+ }
95
+ function Switch({ value, children, }) {
96
+ var _a, _b, _c, _d;
97
+ return ((_d = (_b = (_a = children[computeProp(value)]) === null || _a === void 0 ? void 0 : _a.call(children)) !== null && _b !== void 0 ? _b : (_c = children['default']) === null || _c === void 0 ? void 0 : _c.call(children)) !== null && _d !== void 0 ? _d : null);
98
+ }
99
+ function For({ each, optimized, item, children, }) {
100
+ if (!each)
101
+ return null;
102
+ // Get the raw value with a shallow listener so this list only re-renders
103
+ // when the array length changes
104
+ const v = useComputed(() => each.get(optimized ? state.Tracking.optimized : state.Tracking.shallow), true);
105
+ if (!v)
106
+ return null;
107
+ // The child function gets wrapped in a memoized observer component
108
+ if (!item && children) {
109
+ // Update the ref so the generated component uses the latest function
110
+ const refChildren = react.useRef();
111
+ refChildren.current = children;
112
+ item = react.useMemo(() => react.memo(({ item }) => useComputed(() => refChildren.current(item), true)), []);
81
113
  }
82
- listeners.length = 0;
114
+ // Get the appropriate id field
115
+ const id = v.length > 0 ? (v[0].id ? 'id' : v[0]._id ? '_id' : v[0].__id ? '__id' : undefined) : undefined;
116
+ // Create the child elements
117
+ let out = [];
118
+ for (let i = 0; i < v.length; i++) {
119
+ if (v[i]) {
120
+ const key = v[i][id];
121
+ out.push(react.createElement(item, { key: key, item: each[i] }));
122
+ }
123
+ }
124
+ return out;
83
125
  }
84
126
 
85
127
  const hasSymbol = typeof Symbol === 'function' && Symbol.for;
@@ -100,9 +142,7 @@ function observer(component, propsAreEqual) {
100
142
  const componentName = component.displayName || component.name;
101
143
  // Create a wrapper observer component
102
144
  let observer = function (props, ref) {
103
- const forceRender = useForceRender();
104
- // Set up all the listeners while rendering the component
105
- return useObserver(() => component(props, ref), forceRender);
145
+ return useComputed(() => component(props, ref), true);
106
146
  };
107
147
  if (componentName !== '') {
108
148
  observer.displayName = componentName;
@@ -113,26 +153,33 @@ function observer(component, propsAreEqual) {
113
153
  }
114
154
  return react.memo(observer, propsAreEqual);
115
155
  }
116
-
117
- function useComputed(selector, deps) {
118
- // Do all the computed magic inside a useMemo so we can get an initial value
119
- const initial = react.useMemo(() => {
120
- let prevValue;
121
- const onChange = () => {
122
- const v = selector();
123
- // If the selector value is different than previously
124
- if (v !== prevValue) {
125
- prevValue = v;
126
- setValue(v);
127
- }
128
- };
129
- // Set up all the listeners while computing the value
130
- prevValue = useObserver(selector, onChange);
131
- return prevValue;
132
- }, deps || []);
133
- const [value, setValue] = react.useState(initial);
156
+ // Memoized component to wrap the observable value
157
+ const Text = react.memo(function Text({ data }) {
158
+ // Exit the tracking context first
159
+ const trackingPrev = state.tracking.nodes;
160
+ state.tracking.nodes = undefined;
161
+ let [value, setValue] = react.useState(state.getNodeValue(data));
162
+ react.useEffect(() => {
163
+ const cur = state.getNodeValue(data);
164
+ // Set to current if it changed since mount
165
+ if (value !== cur) {
166
+ setValue(cur);
167
+ }
168
+ // Set up change listener, leanup on unmount
169
+ return state.onChange(data, (v) => setValue(v));
170
+ }, []);
171
+ // Restore the tracking context
172
+ state.tracking.nodes = trackingPrev;
134
173
  return value;
135
- }
174
+ }, () => true);
175
+ const ReactTypeofSymbol = hasSymbol ? Symbol.for('react.element') : react.createElement('a').$$typeof;
176
+ // Set extra props for the proxyHandler to return on primitives
177
+ state.extraPrimitiveProps.set('$$typeof', ReactTypeofSymbol);
178
+ state.extraPrimitiveProps.set('type', Text);
179
+ state.extraPrimitiveProps.set('props', {
180
+ __fn: (obs) => ({ data: obs }),
181
+ });
182
+ state.extraPrimitiveProps.set('ref', null);
136
183
 
137
184
  /**
138
185
  * A React hook that creates a new observable and can optionally listen or persist its state.
@@ -146,6 +193,11 @@ function useObservable(initialValue) {
146
193
  return react.useMemo(() => state.observable(state.isFunction(initialValue) ? initialValue() : initialValue), []); // eslint-disable-line react-hooks/exhaustive-deps
147
194
  }
148
195
 
196
+ exports.Computed = Computed;
197
+ exports.For = For;
198
+ exports.Memo = Memo;
199
+ exports.Show = Show;
200
+ exports.Switch = Switch;
149
201
  exports.observer = observer;
150
202
  exports.useComputed = useComputed;
151
203
  exports.useObservable = useObservable;
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/useComputed.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null],"names":["useReducer","useCallback","useRef","tracking","Tracking","onChange","useEffect","forwardRef","memo","useMemo","useState","observable","isFunction"],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sources":["../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/flow.tsx","../../src/react/observer.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null],"names":["useReducer","useCallback","symbolUndef","tracking","observe","useEffect","setupTracking","isFunction","isObservable","memo","Tracking","useRef","useMemo","createElement","forwardRef","useState","getNodeValue","onChange","extraPrimitiveProps","observable"],"mappings":"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"}
package/react.mjs CHANGED
@@ -1,81 +1,123 @@
1
- import { useReducer, useCallback, useRef, useEffect, forwardRef, memo, useMemo, useState } from 'react';
2
- import { tracking, Tracking, onChange, observable, isFunction } from '@legendapp/state';
1
+ import { observe, setupTracking, symbolUndef, tracking, isFunction, Tracking, isObservable, getNodeValue, onChange, extraPrimitiveProps, observable } from '@legendapp/state';
2
+ import { useReducer, useCallback, useEffect, memo, useRef, useMemo, createElement, forwardRef, useState } from 'react';
3
3
 
4
4
  function useForceRender() {
5
5
  const [, forceRender] = useReducer((s) => s + 1, 0);
6
6
  return useCallback(() => forceRender(), []);
7
7
  }
8
8
 
9
- function useObserver(fn, updateFn) {
10
- var _a;
11
- const refListeners = useRef([]);
12
- const listeners = refListeners.current;
13
- // Cleanup old listeners before tracking
14
- if (listeners.length > 0) {
15
- cleanup(listeners);
16
- }
17
- // Cache previous tracking nodes since this might be nested from another observing component
18
- const trackingPrev = tracking.nodes;
19
- // Reset tracking nodes
20
- tracking.nodes = new Map();
21
- // Calling the function fills up the tracking nodes
22
- const ret = fn();
23
- const nodes = tracking.nodes;
24
- // Listen to tracked nodes
25
- for (let tracked of nodes.values()) {
26
- const { node, track } = tracked;
27
- let options;
28
- if (track) {
29
- options = {
30
- shallow: track === Tracking.shallow,
31
- optimized: track === Tracking.optimized,
32
- };
9
+ /**
10
+ * Runs the specified selector, automatically tracking observable access and optionally re-rendering
11
+ * @param selector A computation function
12
+ * @param whenToRender When to re-render. false = never re-render, undefined = render if different, true = always render
13
+ */
14
+ function useComputed(selector, whenToRender) {
15
+ let inRun = true;
16
+ let ret = symbolUndef;
17
+ let cachedNodes;
18
+ const fr = whenToRender !== false && useForceRender();
19
+ const update = function () {
20
+ // If running, run and return the value
21
+ // Don't need to run the selector again if not running and alwaysUpdate
22
+ if (inRun || !whenToRender) {
23
+ const cur = selector();
24
+ // Re-render if not currently rendering and value has changed
25
+ if (!inRun && cur !== ret && whenToRender !== false) {
26
+ // Re-render if value changed
27
+ fr();
28
+ }
29
+ ret = cur;
33
30
  }
34
- listeners.push(onChange(node, updateFn, options));
35
- }
36
- // Do tracing if it was requested
37
- if (process.env.NODE_ENV === 'development') {
38
- (_a = tracking.listeners) === null || _a === void 0 ? void 0 : _a.call(tracking, nodes);
39
- if (tracking.updates) {
40
- updateFn = tracking.updates(updateFn);
31
+ else if (whenToRender) {
32
+ fr();
41
33
  }
42
- }
43
- // Restore previous tracking nodes
44
- tracking.nodes = trackingPrev;
45
- // Cleanup listeners on unmounts
46
- useEffect(() => {
47
- let listeners = refListeners.current;
48
- // Workaround for React 18's double calling useEffect. If this is the
49
- // second useEffect, set up listeners again.
50
- if (process.env.NODE_ENV === 'development' && refListeners.current === undefined) {
51
- listeners = refListeners.current = [];
52
- // Re-listen to tracked nodes. This should be copied from above.
53
- for (let tracked of nodes.values()) {
54
- const { node, track } = tracked;
55
- let options;
56
- if (track) {
57
- options = {
58
- shallow: track === Tracking.shallow,
59
- optimized: track === Tracking.optimized,
60
- };
61
- }
62
- listeners.push(onChange(node, updateFn, options));
63
- }
34
+ inRun = false;
35
+ // Workaround for React 18's double calling useEffect - cached the tracking nodes
36
+ if (process.env.NODE_ENV === 'development') {
37
+ cachedNodes = tracking.nodes;
64
38
  }
65
- return () => {
66
- cleanup(listeners);
67
- // Set it to undefined so it would trigger the above React 18 workaround
68
- refListeners.current = undefined;
69
- };
70
- }, []);
39
+ };
40
+ let dispose = observe(update);
41
+ if (process.env.NODE_ENV === 'development') {
42
+ useEffect(() => {
43
+ // Workaround for React 18's double calling useEffect. If this is the
44
+ // second useEffect, set up tracking again.
45
+ if (dispose === undefined) {
46
+ dispose = setupTracking(cachedNodes, update);
47
+ }
48
+ return () => {
49
+ dispose();
50
+ dispose = undefined;
51
+ };
52
+ });
53
+ }
54
+ else {
55
+ // Return dispose to cleanup before each render or on unmount
56
+ useEffect(() => dispose);
57
+ }
71
58
  return ret;
72
59
  }
73
- function cleanup(listeners) {
74
- // Cleanup listeners
75
- for (let i = 0; i < listeners.length; i++) {
76
- listeners[i]();
60
+
61
+ function computeProp(prop) {
62
+ return useComputed(() => {
63
+ let p = prop;
64
+ if (isFunction(p)) {
65
+ p = p();
66
+ }
67
+ if (isObservable(p)) {
68
+ p = p.get();
69
+ }
70
+ return p;
71
+ });
72
+ }
73
+ function Computed({ children }) {
74
+ return useComputed(children, true);
75
+ }
76
+ const Memo = memo(function Memo({ children }) {
77
+ return useComputed(children, true);
78
+ }, () => true);
79
+ function Show({ if: if_, else: else_, children, }) {
80
+ const value = computeProp(if_);
81
+ return (value
82
+ ? isFunction(children)
83
+ ? children(value)
84
+ : children
85
+ : else_
86
+ ? isFunction(else_)
87
+ ? else_()
88
+ : else_
89
+ : null);
90
+ }
91
+ function Switch({ value, children, }) {
92
+ var _a, _b, _c, _d;
93
+ return ((_d = (_b = (_a = children[computeProp(value)]) === null || _a === void 0 ? void 0 : _a.call(children)) !== null && _b !== void 0 ? _b : (_c = children['default']) === null || _c === void 0 ? void 0 : _c.call(children)) !== null && _d !== void 0 ? _d : null);
94
+ }
95
+ function For({ each, optimized, item, children, }) {
96
+ if (!each)
97
+ return null;
98
+ // Get the raw value with a shallow listener so this list only re-renders
99
+ // when the array length changes
100
+ const v = useComputed(() => each.get(optimized ? Tracking.optimized : Tracking.shallow), true);
101
+ if (!v)
102
+ return null;
103
+ // The child function gets wrapped in a memoized observer component
104
+ if (!item && children) {
105
+ // Update the ref so the generated component uses the latest function
106
+ const refChildren = useRef();
107
+ refChildren.current = children;
108
+ item = useMemo(() => memo(({ item }) => useComputed(() => refChildren.current(item), true)), []);
109
+ }
110
+ // Get the appropriate id field
111
+ const id = v.length > 0 ? (v[0].id ? 'id' : v[0]._id ? '_id' : v[0].__id ? '__id' : undefined) : undefined;
112
+ // Create the child elements
113
+ let out = [];
114
+ for (let i = 0; i < v.length; i++) {
115
+ if (v[i]) {
116
+ const key = v[i][id];
117
+ out.push(createElement(item, { key: key, item: each[i] }));
118
+ }
77
119
  }
78
- listeners.length = 0;
120
+ return out;
79
121
  }
80
122
 
81
123
  const hasSymbol = typeof Symbol === 'function' && Symbol.for;
@@ -96,9 +138,7 @@ function observer(component, propsAreEqual) {
96
138
  const componentName = component.displayName || component.name;
97
139
  // Create a wrapper observer component
98
140
  let observer = function (props, ref) {
99
- const forceRender = useForceRender();
100
- // Set up all the listeners while rendering the component
101
- return useObserver(() => component(props, ref), forceRender);
141
+ return useComputed(() => component(props, ref), true);
102
142
  };
103
143
  if (componentName !== '') {
104
144
  observer.displayName = componentName;
@@ -109,26 +149,33 @@ function observer(component, propsAreEqual) {
109
149
  }
110
150
  return memo(observer, propsAreEqual);
111
151
  }
112
-
113
- function useComputed(selector, deps) {
114
- // Do all the computed magic inside a useMemo so we can get an initial value
115
- const initial = useMemo(() => {
116
- let prevValue;
117
- const onChange = () => {
118
- const v = selector();
119
- // If the selector value is different than previously
120
- if (v !== prevValue) {
121
- prevValue = v;
122
- setValue(v);
123
- }
124
- };
125
- // Set up all the listeners while computing the value
126
- prevValue = useObserver(selector, onChange);
127
- return prevValue;
128
- }, deps || []);
129
- const [value, setValue] = useState(initial);
152
+ // Memoized component to wrap the observable value
153
+ const Text = memo(function Text({ data }) {
154
+ // Exit the tracking context first
155
+ const trackingPrev = tracking.nodes;
156
+ tracking.nodes = undefined;
157
+ let [value, setValue] = useState(getNodeValue(data));
158
+ useEffect(() => {
159
+ const cur = getNodeValue(data);
160
+ // Set to current if it changed since mount
161
+ if (value !== cur) {
162
+ setValue(cur);
163
+ }
164
+ // Set up change listener, leanup on unmount
165
+ return onChange(data, (v) => setValue(v));
166
+ }, []);
167
+ // Restore the tracking context
168
+ tracking.nodes = trackingPrev;
130
169
  return value;
131
- }
170
+ }, () => true);
171
+ const ReactTypeofSymbol = hasSymbol ? Symbol.for('react.element') : createElement('a').$$typeof;
172
+ // Set extra props for the proxyHandler to return on primitives
173
+ extraPrimitiveProps.set('$$typeof', ReactTypeofSymbol);
174
+ extraPrimitiveProps.set('type', Text);
175
+ extraPrimitiveProps.set('props', {
176
+ __fn: (obs) => ({ data: obs }),
177
+ });
178
+ extraPrimitiveProps.set('ref', null);
132
179
 
133
180
  /**
134
181
  * A React hook that creates a new observable and can optionally listen or persist its state.
@@ -142,5 +189,5 @@ function useObservable(initialValue) {
142
189
  return useMemo(() => observable(isFunction(initialValue) ? initialValue() : initialValue), []); // eslint-disable-line react-hooks/exhaustive-deps
143
190
  }
144
191
 
145
- export { observer, useComputed, useObservable };
192
+ export { Computed, For, Memo, Show, Switch, observer, useComputed, useObservable };
146
193
  //# sourceMappingURL=react.mjs.map
package/react.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.mjs","sources":["../../src/react/useForceRender.ts","../../src/react/useObserver.ts","../../src/react/observer.ts","../../src/react/useComputed.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.mjs","sources":["../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/flow.tsx","../../src/react/observer.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":"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"}
package/src/globals.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { NodeValue } from './observableInterfaces';
2
2
  export declare const symbolDateModified: unique symbol;
3
3
  export declare const symbolIsObservable: unique symbol;
4
+ export declare const symbolGetNode: unique symbol;
5
+ export declare const symbolUndef: unique symbol;
6
+ export declare const extraPrimitiveProps: Map<string, any>;
4
7
  export declare namespace Tracking {
5
8
  const normal = true;
6
9
  const shallow: unique symbol;
@@ -12,5 +15,4 @@ export declare const nextNodeID: {
12
15
  export declare function checkTracking(node: NodeValue, track: boolean | Symbol): void;
13
16
  export declare function get(node: NodeValue, keyOrTrack?: string | number | boolean | Symbol, track?: boolean | Symbol): any;
14
17
  export declare function getNodeValue(node: NodeValue): any;
15
- export declare function getOutputValue(node: NodeValue): any;
16
18
  export declare function getChildNode(node: NodeValue, key: string | number): NodeValue;
package/src/helpers.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- import type { ObservableObject } from './observableInterfaces';
1
+ import type { NodeValue, ObservableObject, ObservableRef } from './observableInterfaces';
2
2
  export declare function isObservable(obs: any): obs is ObservableObject;
3
+ export declare function getNode(obs: ObservableRef): NodeValue;
4
+ export declare function lockObservable(obs: ObservableRef, value: boolean): void;
3
5
  export declare function mergeIntoObservable(target: ObservableObject | object, ...sources: any[]): any;