@legendapp/state 0.16.0 → 0.16.1-next.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/CHANGELOG.md +19 -0
- package/package.json +1 -1
- package/react.js +65 -57
- package/react.js.map +1 -1
- package/react.mjs +65 -57
- package/react.mjs.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## 0.16.0
|
|
2
|
+
|
|
3
|
+
See https://legendapp.com/dev/state/migrating for more details.
|
|
4
|
+
|
|
5
|
+
- Breaking: Removed `observer` HOC
|
|
6
|
+
- Feat: No longer need `observer` HOC - Call `enableLegendStateReact()` at the beginning of your app, and then all components automatically observe any accessed state
|
|
7
|
+
- Feat: `when` callback receives the current value as the parameter
|
|
8
|
+
- Feat: Add join to array functions that create shallow listeners
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## 0.15.3
|
|
12
|
+
- Feat: Observables can easily switch back and forth between being an object or a primitive, and observable primitives have less overhead
|
|
13
|
+
|
|
14
|
+
## 0.15.2
|
|
15
|
+
- Fix: Crash when creating an observable starting undefined
|
|
16
|
+
|
|
17
|
+
## 0.15.1
|
|
18
|
+
- Fix: Assigning an object with function children
|
|
19
|
+
|
|
1
20
|
## 0.15.0
|
|
2
21
|
|
|
3
22
|
This is a big one with many breaking (but good) changes, so see https://legendapp.com/dev/state/migrating for more details. We're making a lot of breaking changes all once so that we can start to stabilize towards a 1.0.
|
package/package.json
CHANGED
package/react.js
CHANGED
|
@@ -66,6 +66,8 @@ function For({ each, optimized, item, children, }) {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
let isEnabled = false;
|
|
69
|
+
const Updater = (s) => s + 1;
|
|
70
|
+
const EmptyEffect = () => { };
|
|
69
71
|
function enableLegendStateReact() {
|
|
70
72
|
if (!isEnabled) {
|
|
71
73
|
isEnabled = true;
|
|
@@ -95,69 +97,75 @@ function enableLegendStateReact() {
|
|
|
95
97
|
},
|
|
96
98
|
set(newDispatcher) {
|
|
97
99
|
var _a;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// Track all of the nodes accessed during the dispatcher
|
|
114
|
-
let dispose = state.setupTracking(state.tracking.nodes, forceRender, /*noArgs*/ noArgs);
|
|
115
|
-
if (process.env.NODE_ENV === 'development') {
|
|
116
|
-
// Clear tracing
|
|
117
|
-
state.tracking.listeners = undefined;
|
|
118
|
-
state.tracking.updates = undefined;
|
|
119
|
-
const cachedNodes = state.tracking.nodes;
|
|
120
|
-
dispatcher.useEffect(() => {
|
|
121
|
-
// Workaround for React 18's double calling useEffect. If this is the
|
|
122
|
-
// second useEffect, set up tracking again.
|
|
123
|
-
if (dispose === undefined) {
|
|
124
|
-
dispose = state.setupTracking(cachedNodes, forceRender, /*noArgs*/ noArgs);
|
|
100
|
+
if (newDispatcher) {
|
|
101
|
+
const useCallback = newDispatcher.useCallback;
|
|
102
|
+
// When the React render is complete it sets the dispatcher to an object where useCallback has a length of 0
|
|
103
|
+
if (dispatcher && didBeginTracking && useCallback.length < 2) {
|
|
104
|
+
didBeginTracking = false;
|
|
105
|
+
// If the previous dispatcher tracked nodes then set up hooks
|
|
106
|
+
if (state.tracking.nodes) {
|
|
107
|
+
try {
|
|
108
|
+
let forceRender = dispatcher.useReducer(Updater, 0)[1];
|
|
109
|
+
let noArgs = true;
|
|
110
|
+
if (process.env.NODE_ENV === 'development') {
|
|
111
|
+
(_a = state.tracking.listeners) === null || _a === void 0 ? void 0 : _a.call(state.tracking, state.tracking.nodes);
|
|
112
|
+
if (state.tracking.updates) {
|
|
113
|
+
noArgs = false;
|
|
114
|
+
forceRender = state.tracking.updates(forceRender);
|
|
125
115
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
116
|
+
}
|
|
117
|
+
// Track all of the nodes accessed during the dispatcher
|
|
118
|
+
let dispose = state.setupTracking(state.tracking.nodes, forceRender, /*noArgs*/ noArgs);
|
|
119
|
+
if (process.env.NODE_ENV === 'development') {
|
|
120
|
+
// Clear tracing
|
|
121
|
+
state.tracking.listeners = undefined;
|
|
122
|
+
state.tracking.updates = undefined;
|
|
123
|
+
const cachedNodes = state.tracking.nodes;
|
|
124
|
+
dispatcher.useEffect(() => {
|
|
125
|
+
// Workaround for React 18's double calling useEffect. If this is the
|
|
126
|
+
// second useEffect, set up tracking again.
|
|
127
|
+
if (dispose === undefined) {
|
|
128
|
+
dispose = state.setupTracking(cachedNodes, forceRender, /*noArgs*/ noArgs);
|
|
129
|
+
}
|
|
130
|
+
return () => {
|
|
131
|
+
dispose();
|
|
132
|
+
dispose = undefined;
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// Return dispose to cleanup before each render or on unmount
|
|
138
|
+
dispatcher.useEffect(() => dispose);
|
|
139
|
+
}
|
|
131
140
|
}
|
|
132
|
-
|
|
133
|
-
//
|
|
134
|
-
|
|
141
|
+
catch (err) {
|
|
142
|
+
// This may not ever be an error but since this is new we'll leave this here
|
|
143
|
+
// for a bit while we see what the behavior is like
|
|
144
|
+
if (process.env.NODE_ENV === 'development') {
|
|
145
|
+
console.error('[legend-state] error creating hooks', err);
|
|
146
|
+
throw new Error('[legend-state] error creating hooks');
|
|
147
|
+
}
|
|
135
148
|
}
|
|
136
149
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (process.env.NODE_ENV === 'development') {
|
|
141
|
-
console.error('[legend-state] error creating hooks', err);
|
|
142
|
-
throw new Error('[legend-state] error creating hooks');
|
|
143
|
-
}
|
|
150
|
+
else {
|
|
151
|
+
dispatcher.useReducer(Updater, 0);
|
|
152
|
+
dispatcher.useEffect(EmptyEffect);
|
|
144
153
|
}
|
|
154
|
+
// Restore the previous tracking context
|
|
155
|
+
state.endTracking(prevNodes);
|
|
156
|
+
}
|
|
157
|
+
dispatcher = newDispatcher;
|
|
158
|
+
// Start a new tracking context when entering a new rendering dispatcher
|
|
159
|
+
// In development, rendering dispatchers have useCallback named either "mountHookTypes" or "updateHookTypes"
|
|
160
|
+
// In production, they just have length = 2
|
|
161
|
+
if (!state.tracking.isTracking &&
|
|
162
|
+
(process.env.NODE_ENV === 'development'
|
|
163
|
+
? !useCallback.toString().includes('Invalid')
|
|
164
|
+
: useCallback.length === 2)) {
|
|
165
|
+
didBeginTracking = true;
|
|
166
|
+
// Keep a copy of the previous tracking context
|
|
167
|
+
prevNodes = state.beginTracking();
|
|
145
168
|
}
|
|
146
|
-
// Restore the previous tracking context
|
|
147
|
-
state.endTracking(prevNodes);
|
|
148
|
-
}
|
|
149
|
-
dispatcher = newDispatcher;
|
|
150
|
-
// Start a new tracking context when entering a new rendering dispatcher
|
|
151
|
-
// In development, rendering dispatchers have useCallback named either "mountHookTypes" or "updateHookTypes"
|
|
152
|
-
// In production, they just have length = 2
|
|
153
|
-
if (newDispatcher &&
|
|
154
|
-
!state.tracking.isTracking &&
|
|
155
|
-
(process.env.NODE_ENV === 'development'
|
|
156
|
-
? !newDispatcher.useCallback.toString().includes('Invalid')
|
|
157
|
-
: newDispatcher.useCallback.length === 2)) {
|
|
158
|
-
didBeginTracking = true;
|
|
159
|
-
// Keep a copy of the previous tracking context
|
|
160
|
-
prevNodes = state.beginTracking();
|
|
161
169
|
}
|
|
162
170
|
},
|
|
163
171
|
});
|
package/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sources":["../../src/react/flow.tsx","../../src/react/enableLegendStateReact.ts","../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/useObserve.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["isFunction","isObservable","memo","Tracking","useRef","useMemo","createElement","updateTracking","getNodeValue","extraPrimitiveProps","ReactInternals","tracking","setupTracking","endTracking","beginTracking","useReducer","useCallback","symbolUndef","observe","useEffect","observable"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"react.js","sources":["../../src/react/flow.tsx","../../src/react/enableLegendStateReact.ts","../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/useObserve.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["isFunction","isObservable","memo","Tracking","useRef","useMemo","createElement","updateTracking","getNodeValue","extraPrimitiveProps","ReactInternals","tracking","setupTracking","endTracking","beginTracking","useReducer","useCallback","symbolUndef","observe","useEffect","observable"],"mappings":"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"}
|
package/react.mjs
CHANGED
|
@@ -62,6 +62,8 @@ function For({ each, optimized, item, children, }) {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
let isEnabled = false;
|
|
65
|
+
const Updater = (s) => s + 1;
|
|
66
|
+
const EmptyEffect = () => { };
|
|
65
67
|
function enableLegendStateReact() {
|
|
66
68
|
if (!isEnabled) {
|
|
67
69
|
isEnabled = true;
|
|
@@ -91,69 +93,75 @@ function enableLegendStateReact() {
|
|
|
91
93
|
},
|
|
92
94
|
set(newDispatcher) {
|
|
93
95
|
var _a;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
// Track all of the nodes accessed during the dispatcher
|
|
110
|
-
let dispose = setupTracking(tracking.nodes, forceRender, /*noArgs*/ noArgs);
|
|
111
|
-
if (process.env.NODE_ENV === 'development') {
|
|
112
|
-
// Clear tracing
|
|
113
|
-
tracking.listeners = undefined;
|
|
114
|
-
tracking.updates = undefined;
|
|
115
|
-
const cachedNodes = tracking.nodes;
|
|
116
|
-
dispatcher.useEffect(() => {
|
|
117
|
-
// Workaround for React 18's double calling useEffect. If this is the
|
|
118
|
-
// second useEffect, set up tracking again.
|
|
119
|
-
if (dispose === undefined) {
|
|
120
|
-
dispose = setupTracking(cachedNodes, forceRender, /*noArgs*/ noArgs);
|
|
96
|
+
if (newDispatcher) {
|
|
97
|
+
const useCallback = newDispatcher.useCallback;
|
|
98
|
+
// When the React render is complete it sets the dispatcher to an object where useCallback has a length of 0
|
|
99
|
+
if (dispatcher && didBeginTracking && useCallback.length < 2) {
|
|
100
|
+
didBeginTracking = false;
|
|
101
|
+
// If the previous dispatcher tracked nodes then set up hooks
|
|
102
|
+
if (tracking.nodes) {
|
|
103
|
+
try {
|
|
104
|
+
let forceRender = dispatcher.useReducer(Updater, 0)[1];
|
|
105
|
+
let noArgs = true;
|
|
106
|
+
if (process.env.NODE_ENV === 'development') {
|
|
107
|
+
(_a = tracking.listeners) === null || _a === void 0 ? void 0 : _a.call(tracking, tracking.nodes);
|
|
108
|
+
if (tracking.updates) {
|
|
109
|
+
noArgs = false;
|
|
110
|
+
forceRender = tracking.updates(forceRender);
|
|
121
111
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
112
|
+
}
|
|
113
|
+
// Track all of the nodes accessed during the dispatcher
|
|
114
|
+
let dispose = setupTracking(tracking.nodes, forceRender, /*noArgs*/ noArgs);
|
|
115
|
+
if (process.env.NODE_ENV === 'development') {
|
|
116
|
+
// Clear tracing
|
|
117
|
+
tracking.listeners = undefined;
|
|
118
|
+
tracking.updates = undefined;
|
|
119
|
+
const cachedNodes = tracking.nodes;
|
|
120
|
+
dispatcher.useEffect(() => {
|
|
121
|
+
// Workaround for React 18's double calling useEffect. If this is the
|
|
122
|
+
// second useEffect, set up tracking again.
|
|
123
|
+
if (dispose === undefined) {
|
|
124
|
+
dispose = setupTracking(cachedNodes, forceRender, /*noArgs*/ noArgs);
|
|
125
|
+
}
|
|
126
|
+
return () => {
|
|
127
|
+
dispose();
|
|
128
|
+
dispose = undefined;
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Return dispose to cleanup before each render or on unmount
|
|
134
|
+
dispatcher.useEffect(() => dispose);
|
|
135
|
+
}
|
|
127
136
|
}
|
|
128
|
-
|
|
129
|
-
//
|
|
130
|
-
|
|
137
|
+
catch (err) {
|
|
138
|
+
// This may not ever be an error but since this is new we'll leave this here
|
|
139
|
+
// for a bit while we see what the behavior is like
|
|
140
|
+
if (process.env.NODE_ENV === 'development') {
|
|
141
|
+
console.error('[legend-state] error creating hooks', err);
|
|
142
|
+
throw new Error('[legend-state] error creating hooks');
|
|
143
|
+
}
|
|
131
144
|
}
|
|
132
145
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (process.env.NODE_ENV === 'development') {
|
|
137
|
-
console.error('[legend-state] error creating hooks', err);
|
|
138
|
-
throw new Error('[legend-state] error creating hooks');
|
|
139
|
-
}
|
|
146
|
+
else {
|
|
147
|
+
dispatcher.useReducer(Updater, 0);
|
|
148
|
+
dispatcher.useEffect(EmptyEffect);
|
|
140
149
|
}
|
|
150
|
+
// Restore the previous tracking context
|
|
151
|
+
endTracking(prevNodes);
|
|
152
|
+
}
|
|
153
|
+
dispatcher = newDispatcher;
|
|
154
|
+
// Start a new tracking context when entering a new rendering dispatcher
|
|
155
|
+
// In development, rendering dispatchers have useCallback named either "mountHookTypes" or "updateHookTypes"
|
|
156
|
+
// In production, they just have length = 2
|
|
157
|
+
if (!tracking.isTracking &&
|
|
158
|
+
(process.env.NODE_ENV === 'development'
|
|
159
|
+
? !useCallback.toString().includes('Invalid')
|
|
160
|
+
: useCallback.length === 2)) {
|
|
161
|
+
didBeginTracking = true;
|
|
162
|
+
// Keep a copy of the previous tracking context
|
|
163
|
+
prevNodes = beginTracking();
|
|
141
164
|
}
|
|
142
|
-
// Restore the previous tracking context
|
|
143
|
-
endTracking(prevNodes);
|
|
144
|
-
}
|
|
145
|
-
dispatcher = newDispatcher;
|
|
146
|
-
// Start a new tracking context when entering a new rendering dispatcher
|
|
147
|
-
// In development, rendering dispatchers have useCallback named either "mountHookTypes" or "updateHookTypes"
|
|
148
|
-
// In production, they just have length = 2
|
|
149
|
-
if (newDispatcher &&
|
|
150
|
-
!tracking.isTracking &&
|
|
151
|
-
(process.env.NODE_ENV === 'development'
|
|
152
|
-
? !newDispatcher.useCallback.toString().includes('Invalid')
|
|
153
|
-
: newDispatcher.useCallback.length === 2)) {
|
|
154
|
-
didBeginTracking = true;
|
|
155
|
-
// Keep a copy of the previous tracking context
|
|
156
|
-
prevNodes = beginTracking();
|
|
157
165
|
}
|
|
158
166
|
},
|
|
159
167
|
});
|
package/react.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.mjs","sources":["../../src/react/flow.tsx","../../src/react/enableLegendStateReact.ts","../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/useObserve.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["ReactInternals"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"react.mjs","sources":["../../src/react/flow.tsx","../../src/react/enableLegendStateReact.ts","../../src/react/useForceRender.ts","../../src/react/useComputed.ts","../../src/react/useObserve.ts","../../src/react/useObservable.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["ReactInternals"],"mappings":"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"}
|