@legendapp/state 0.15.0-next.9 → 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 (59) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/babel.js +21 -599
  3. package/babel.js.map +1 -1
  4. package/index.d.ts +7 -2
  5. package/index.js +123 -113
  6. package/index.js.map +1 -1
  7. package/index.mjs +117 -113
  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 -137
  26. package/react.js.map +1 -1
  27. package/react.mjs +137 -140
  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 +16 -14
  32. package/src/{effect.d.ts → observe.d.ts} +1 -1
  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 -173
  49. package/react-native.js.map +0 -1
  50. package/react-native.mjs +0 -169
  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 -230
  55. package/reactivity.js.map +0 -1
  56. package/reactivity.mjs +0 -222
  57. package/reactivity.mjs.map +0 -1
  58. package/src/react/controlFlow.d.ts +0 -28
  59. package/state-types.d.ts +0 -24
package/react.js CHANGED
@@ -5,100 +5,123 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var state = require('@legendapp/state');
6
6
  var react = require('react');
7
7
 
8
- const tracking = {
9
- nodes: undefined,
10
- listeners: undefined,
11
- updates: undefined,
12
- };
13
-
14
- var Tracking;
15
- (function (Tracking) {
16
- Tracking.normal = true;
17
- Tracking.shallow = Symbol('shallow');
18
- Tracking.optimized = Symbol('optimized');
19
- })(Tracking || (Tracking = {}));
20
- function getNodeValue(node) {
21
- const arr = [];
22
- let n = node;
23
- while ((n === null || n === void 0 ? void 0 : n.key) !== undefined) {
24
- arr.push(n.key);
25
- n = n.parent;
26
- }
27
- let child = node.root._;
28
- for (let i = arr.length - 1; i >= 0; i--) {
29
- if (arr[i] !== undefined && child) {
30
- child = child[arr[i]];
31
- }
32
- }
33
- return child;
8
+ function useForceRender() {
9
+ const [, forceRender] = react.useReducer((s) => s + 1, 0);
10
+ return react.useCallback(() => forceRender(), []);
34
11
  }
35
12
 
36
- let listenerIndex = 0;
37
- function onChange(node, callback, options) {
38
- let id = listenerIndex++;
39
- let listeners = node.listeners;
40
- if (!listeners) {
41
- node.listeners = listeners = new Map();
42
- }
43
- if (options) {
44
- // A memory efficient way to save shallowness is to put it on the id itself
45
- if (options.shallow)
46
- id = 's' + id;
47
- else if (options.optimized)
48
- id = 'o' + id;
49
- if (options.runImmediately) {
50
- const value = getNodeValue(node);
51
- callback(value, () => value, [], value, value, node);
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;
34
+ }
35
+ else if (whenToRender) {
36
+ fr();
52
37
  }
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;
42
+ }
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
+ });
53
57
  }
54
- listeners.set(id, callback);
55
- return () => listeners.delete(id);
58
+ else {
59
+ // Return dispose to cleanup before each render or on unmount
60
+ react.useEffect(() => dispose);
61
+ }
62
+ return ret;
56
63
  }
57
64
 
58
- function setupTracking(nodes, update) {
59
- let listeners = [];
60
- // Listen to tracked nodes
61
- for (let tracked of nodes.values()) {
62
- const { node, track } = tracked;
63
- let options;
64
- if (track) {
65
- options = {
66
- shallow: track === Tracking.shallow,
67
- optimized: track === Tracking.optimized,
68
- };
65
+ function computeProp(prop) {
66
+ return useComputed(() => {
67
+ let p = prop;
68
+ if (state.isFunction(p)) {
69
+ p = p();
69
70
  }
70
- listeners.push(onChange(node, update, options));
71
- }
72
- return () => {
73
- if (listeners) {
74
- for (let i = 0; i < listeners.length; i++) {
75
- listeners[i]();
76
- }
77
- listeners = undefined;
71
+ if (state.isObservable(p)) {
72
+ p = p.get();
78
73
  }
79
- };
74
+ return p;
75
+ });
80
76
  }
81
- function effect(run) {
82
- let cleanup;
83
- // Wrap it in a function so it doesn't pass all the arguments to run()
84
- const update = function () {
85
- if (cleanup) {
86
- cleanup();
87
- cleanup = undefined;
88
- }
89
- cleanup = run();
90
- };
91
- const trackingPrev = tracking.nodes;
92
- tracking.nodes = new Map();
93
- cleanup = run();
94
- const ret = setupTracking(tracking.nodes, update);
95
- tracking.nodes = trackingPrev;
96
- return ret;
77
+ function Computed({ children }) {
78
+ return useComputed(children, true);
97
79
  }
98
-
99
- function useForceRender() {
100
- const [, forceRender] = react.useReducer((s) => s + 1, 0);
101
- return react.useCallback(() => forceRender(), []);
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)), []);
113
+ }
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;
102
125
  }
103
126
 
104
127
  const hasSymbol = typeof Symbol === 'function' && Symbol.for;
@@ -119,40 +142,7 @@ function observer(component, propsAreEqual) {
119
142
  const componentName = component.displayName || component.name;
120
143
  // Create a wrapper observer component
121
144
  let observer = function (props, ref) {
122
- const forceRender = useForceRender();
123
- let inRender = true;
124
- let rendered;
125
- let cachedNodes;
126
- const update = function () {
127
- if (inRender) {
128
- rendered = component(props, ref);
129
- }
130
- else {
131
- forceRender();
132
- }
133
- inRender = false;
134
- if (process.env.NODE_ENV === 'development') {
135
- cachedNodes = state.tracking.nodes;
136
- }
137
- };
138
- let dispose = state.effect(update);
139
- if (process.env.NODE_ENV === 'development') {
140
- react.useEffect(() => {
141
- // Workaround for React 18's double calling useEffect. If this is the
142
- // second useEffect, set up tracking again.
143
- if (dispose === undefined) {
144
- dispose = setupTracking(cachedNodes, update);
145
- }
146
- return () => {
147
- dispose();
148
- dispose = undefined;
149
- };
150
- });
151
- }
152
- else {
153
- react.useEffect(() => dispose);
154
- }
155
- return rendered;
145
+ return useComputed(() => component(props, ref), true);
156
146
  };
157
147
  if (componentName !== '') {
158
148
  observer.displayName = componentName;
@@ -163,26 +153,33 @@ function observer(component, propsAreEqual) {
163
153
  }
164
154
  return react.memo(observer, propsAreEqual);
165
155
  }
166
-
167
- function useComputed(selector, deps) {
168
- // Do computed computation inside a useMemo so we can get an initial value
169
- const initial = react.useMemo(() => {
170
- let prevValue;
171
- // Do this in an effect to track automatically
172
- effect(() => {
173
- const v = selector();
174
- // If the selector value is different than previously
175
- if (v !== prevValue) {
176
- prevValue = v;
177
- // setValue may be undefined if this is the first run
178
- setValue === null || setValue === void 0 ? void 0 : setValue(v);
179
- }
180
- });
181
- return prevValue;
182
- }, deps || []);
183
- 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;
184
173
  return value;
185
- }
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);
186
183
 
187
184
  /**
188
185
  * A React hook that creates a new observable and can optionally listen or persist its state.
@@ -196,6 +193,11 @@ function useObservable(initialValue) {
196
193
  return react.useMemo(() => state.observable(state.isFunction(initialValue) ? initialValue() : initialValue), []); // eslint-disable-line react-hooks/exhaustive-deps
197
194
  }
198
195
 
196
+ exports.Computed = Computed;
197
+ exports.For = For;
198
+ exports.Memo = Memo;
199
+ exports.Show = Show;
200
+ exports.Switch = Switch;
199
201
  exports.observer = observer;
200
202
  exports.useComputed = useComputed;
201
203
  exports.useObservable = useObservable;
package/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sources":["../../src/tracking.ts","../../src/globals.ts","../../src/onChange.ts","../../src/effect.ts","../../src/react/useForceRender.ts","../../src/react/observer.ts","../../src/react/useComputed.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["useReducer","useCallback","forwardRef","tracking","effect","useEffect","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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"}