@legendapp/state 0.9.1 → 0.9.2-alpha.11
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/package.json +1 -1
- package/react.d.ts +2 -0
- package/react.js +2 -0
- package/react.js.map +1 -1
- package/src/globals.js +7 -1
- package/src/globals.js.map +1 -1
- package/src/observable.js +41 -25
- package/src/observable.js.map +1 -1
- package/src/observableComputed.d.ts +1 -1
- package/src/observableComputed.js +5 -5
- package/src/observableComputed.js.map +1 -1
- package/src/observableFns.d.ts +2 -1
- package/src/observableFns.js +12 -2
- package/src/observableFns.js.map +1 -1
- package/src/observableInterfaces.d.ts +1 -1
- package/src/observableState.d.ts +0 -1
- package/src/observableState.js.map +1 -1
- package/src/react/useComputed.d.ts +2 -0
- package/src/react/useComputed.js +16 -0
- package/src/react/useComputed.js.map +1 -0
- package/src/react/useObservables.d.ts +1 -1
- package/src/react/useObservables.js +19 -4
- package/src/react/useObservables.js.map +1 -1
package/package.json
CHANGED
package/react.d.ts
CHANGED
package/react.js
CHANGED
|
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./src/react/useNewObservable"), exports);
|
|
18
18
|
__exportStar(require("./src/react/useObservables"), exports);
|
|
19
|
+
__exportStar(require("./src/react/usePrimitiveFunctions"), exports);
|
|
20
|
+
__exportStar(require("./src/react/useComputed"), exports);
|
|
19
21
|
//# sourceMappingURL=react.js.map
|
package/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,6DAA2C;AAC3C,oEAAkD;AAClD,0DAAwC"}
|
package/src/globals.js
CHANGED
|
@@ -59,7 +59,13 @@ function getDateModifiedKey(dateModifiedKey) {
|
|
|
59
59
|
}
|
|
60
60
|
exports.getDateModifiedKey = getDateModifiedKey;
|
|
61
61
|
function clone(obj) {
|
|
62
|
-
return obj === undefined || obj === null
|
|
62
|
+
return obj === undefined || obj === null
|
|
63
|
+
? obj
|
|
64
|
+
: (0, tools_1.isArray)(obj)
|
|
65
|
+
? obj.slice()
|
|
66
|
+
: (0, tools_1.isObject)(obj)
|
|
67
|
+
? Object.assign({}, obj)
|
|
68
|
+
: JSON.parse(JSON.stringify(obj));
|
|
63
69
|
}
|
|
64
70
|
exports.clone = clone;
|
|
65
71
|
//# sourceMappingURL=globals.js.map
|
package/src/globals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/globals.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AACrD,+DAAgE;AAEnD,QAAA,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC9C,QAAA,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAE7C,SAAgB,mBAAmB,CAAgC,CAAI;IACnE,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;YAC/B,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;SACjB;aAAM,IAAI,IAAA,gBAAQ,EAAC,CAAC,CAAC,EAAE;YACpB,mBAAmB,CAAC,CAAC,CAAC,CAAC;SAC1B;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAVD,kDAUC;AAED,SAAgB,kBAAkB,CAAC,GAAW,EAAE,SAAc,EAAE,SAAc,EAAE,KAAc;IAC1F,IAAI,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE;YAChB,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;SAC5B;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7B,IAAI,GAAG,KAAK,SAAS,EAAE;gBACnB,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAC3E;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,OAAO,GAAG,CAAC;KACd;AACL,CAAC;AAhBD,gDAgBC;AAED,SAAgB,WAAW,CAAC,GAAQ;IAChC,OAAO,CACH,CAAC,IAAA,gBAAQ,EAAC,GAAG,CAAC;QACd,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC;QACb,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;QACzB,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;QACzB,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QACvB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC;QACtB,CAAC,CAAC,GAAG,YAAY,MAAM,CAAC;QACxB,CAAC,CAAC,GAAG,YAAY,WAAW,CAAC,CAChC,CAAC;AACN,CAAC;AAXD,kCAWC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACjC,OAAO,IAAA,eAAO,EAAC,GAAG,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,OAAO,IAAI,GAAG,YAAY,OAAO,CAAC;AACxH,CAAC;AAFD,oCAEC;AAED,SAAgB,kBAAkB,CAAC,eAAuB;IACtD,OAAO,eAAe,IAAI,6CAAuB,CAAC,eAAe,IAAI,GAAG,CAAC;AAC7E,CAAC;AAFD,gDAEC;AAED,SAAgB,KAAK,CAAC,GAAQ;IAC1B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/globals.ts"],"names":[],"mappings":"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"}
|
package/src/observable.js
CHANGED
|
@@ -60,43 +60,45 @@ function _set(proxyOwner, _, prop, value) {
|
|
|
60
60
|
if (info.readonly) {
|
|
61
61
|
return proxyOwner;
|
|
62
62
|
}
|
|
63
|
-
// Need to keep both target and targetOriginal up to date. targetOriginal may not be
|
|
64
|
-
// an === match but it needs to have the same keys.
|
|
65
63
|
const target = info.target;
|
|
66
|
-
const targetOriginal = info.targetOriginal;
|
|
67
64
|
// There was no prop
|
|
68
65
|
if (arguments.length < 4) {
|
|
69
66
|
value = prop;
|
|
70
67
|
prop = undefined;
|
|
71
68
|
const isValuePrimitive = (0, globals_1.isPrimitive)(value);
|
|
72
69
|
const prevValue = info.primitive ? target[globals_1.symbolValue] : (0, globals_1.clone)(target);
|
|
70
|
+
const needsNotifyUndefined = !value || isValuePrimitive !== info.primitive;
|
|
71
|
+
const childrenToNotify = [];
|
|
73
72
|
// 1. Delete keys that no longer exist
|
|
74
73
|
Object.keys(target).forEach((key) => {
|
|
75
|
-
if (
|
|
74
|
+
if (needsNotifyUndefined || (value[key] === undefined && value[+key] === undefined)) {
|
|
76
75
|
if (info.proxies) {
|
|
77
76
|
const child = info.proxies.get(key);
|
|
78
77
|
if (child) {
|
|
79
|
-
|
|
78
|
+
childrenToNotify.push(child);
|
|
79
|
+
info.proxies.delete(key);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
delete target[key];
|
|
83
|
-
delete targetOriginal[key];
|
|
84
82
|
}
|
|
85
83
|
});
|
|
86
84
|
// To avoid notifying multiple times as props are changed, make sure we don't notify for this proxy until the assign is done
|
|
87
85
|
skipNotifyFor.push(proxyOwner);
|
|
88
86
|
if (isValuePrimitive) {
|
|
89
87
|
info.primitive = true;
|
|
90
|
-
target[globals_1.symbolValue]
|
|
88
|
+
info.target = { [globals_1.symbolValue]: value };
|
|
91
89
|
}
|
|
92
90
|
else {
|
|
93
91
|
info.primitive = false;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
if (info.proxies) {
|
|
93
|
+
// 2. Update all child proxies
|
|
94
|
+
info.proxies.forEach((child) => {
|
|
95
|
+
const childInfo = infos.get(child);
|
|
96
|
+
const prop = childInfo.prop;
|
|
97
|
+
if (value[prop]) {
|
|
98
|
+
child.set(value[childInfo.prop]);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
100
102
|
info.target = value;
|
|
101
103
|
}
|
|
102
104
|
skipNotifyFor.pop();
|
|
@@ -104,15 +106,15 @@ function _set(proxyOwner, _, prop, value) {
|
|
|
104
106
|
if (info.parent) {
|
|
105
107
|
const parentInfo = infos.get(info.parent);
|
|
106
108
|
parentInfo.target[info.prop] = value;
|
|
107
|
-
parentInfo.targetOriginal[info.prop] = value;
|
|
108
109
|
}
|
|
109
110
|
if (value !== prevValue) {
|
|
110
111
|
(0, observableFns_1.notifyObservable)(proxyOwner, value, prevValue, []);
|
|
111
112
|
}
|
|
113
|
+
// Notify children after the parent so that deleted children would not re-render if the parent stops rendering them
|
|
114
|
+
childrenToNotify.forEach(observableFns_1.notifyChildrenDeleted);
|
|
112
115
|
}
|
|
113
116
|
else if (typeof prop === 'symbol') {
|
|
114
117
|
target[prop] = value;
|
|
115
|
-
targetOriginal[prop] = value;
|
|
116
118
|
}
|
|
117
119
|
else if ((0, tools_1.isString)(prop) || (0, tools_1.isNumber)(prop)) {
|
|
118
120
|
const propStr = String(prop);
|
|
@@ -125,7 +127,7 @@ function _set(proxyOwner, _, prop, value) {
|
|
|
125
127
|
// Ignore array length changing because that's caused by mutations which already notified.
|
|
126
128
|
if (prop !== 'length' && target[prop] !== value) {
|
|
127
129
|
const prevValue = target.slice();
|
|
128
|
-
target[prop] =
|
|
130
|
+
target[prop] = value;
|
|
129
131
|
// Notify listeners of changes.
|
|
130
132
|
(0, observableFns_1.notifyObservable)(proxyOwner, target, prevValue, []);
|
|
131
133
|
}
|
|
@@ -133,11 +135,10 @@ function _set(proxyOwner, _, prop, value) {
|
|
|
133
135
|
else {
|
|
134
136
|
const prevValue = (0, globals_1.clone)(target[prop]);
|
|
135
137
|
if (value !== prevValue) {
|
|
136
|
-
target[prop] =
|
|
138
|
+
target[prop] = value;
|
|
137
139
|
info.primitive = false;
|
|
138
140
|
delete target[globals_1.symbolValue];
|
|
139
|
-
|
|
140
|
-
// Notify listeners of changes.
|
|
141
|
+
// Notify listeners of changes
|
|
141
142
|
(0, observableFns_1.notifyObservable)(proxyOwner, value, prevValue, [propStr]);
|
|
142
143
|
}
|
|
143
144
|
}
|
|
@@ -185,12 +186,10 @@ function deleteFn(obs, target, prop) {
|
|
|
185
186
|
const info = infos.get(obs);
|
|
186
187
|
if (!info.readonly) {
|
|
187
188
|
if (prop !== undefined) {
|
|
188
|
-
const targetOriginal = info.targetOriginal;
|
|
189
189
|
// First set to undefined
|
|
190
190
|
_set(obs, target, prop, undefined);
|
|
191
191
|
// Then fully delete the keys from the object
|
|
192
192
|
delete target[prop];
|
|
193
|
-
delete targetOriginal[prop];
|
|
194
193
|
// TODO Should find a way to remove from state.infos or there will be a memory leak if deleting
|
|
195
194
|
// unique keys often. Re-addeding the same prop will reuse the same proxy.
|
|
196
195
|
}
|
|
@@ -251,7 +250,8 @@ const proxyHandlerUnsafe = {
|
|
|
251
250
|
lastAccessedProxy.prop = prop;
|
|
252
251
|
}
|
|
253
252
|
updateTracking(proxyOwner, prop, info, /*shallow*/ false);
|
|
254
|
-
if (
|
|
253
|
+
if (prop !== globals_1.symbolValue &&
|
|
254
|
+
(observableState_1.state.inProp || targetValue === undefined || targetValue === null || !(0, globals_1.isPrimitive)(targetValue)) &&
|
|
255
255
|
!(targetValue instanceof Promise) &&
|
|
256
256
|
!(0, tools_1.isFunction)(targetValue)) {
|
|
257
257
|
// Get proxy for prop if it's not a primitive or if using `prop` function
|
|
@@ -298,6 +298,19 @@ const proxyHandlerUnsafe = {
|
|
|
298
298
|
return false;
|
|
299
299
|
}
|
|
300
300
|
},
|
|
301
|
+
ownKeys() {
|
|
302
|
+
const info = infos.get(this);
|
|
303
|
+
const keys = Reflect.ownKeys(info.target);
|
|
304
|
+
return keys;
|
|
305
|
+
},
|
|
306
|
+
getOwnPropertyDescriptor(_, p) {
|
|
307
|
+
const info = infos.get(this);
|
|
308
|
+
return Reflect.getOwnPropertyDescriptor(info.target, p);
|
|
309
|
+
},
|
|
310
|
+
// has(target, p) {
|
|
311
|
+
// debugger;
|
|
312
|
+
// return true;
|
|
313
|
+
// },
|
|
301
314
|
};
|
|
302
315
|
// Safe observables also don't allow defining or deleting properties
|
|
303
316
|
const proxyHandler = Object.assign({
|
|
@@ -317,9 +330,12 @@ const proxyHandler = Object.assign({
|
|
|
317
330
|
function _observable(value, safe, parent, prop) {
|
|
318
331
|
const primitive = (0, globals_1.isPrimitive)(value);
|
|
319
332
|
const target = primitive ? { [globals_1.symbolValue]: value } : value;
|
|
320
|
-
const
|
|
333
|
+
const handler = Object.assign({}, safe ? proxyHandler : proxyHandlerUnsafe);
|
|
334
|
+
const proxy = new Proxy(target, handler);
|
|
335
|
+
handler.ownKeys = handler.ownKeys.bind(proxy);
|
|
336
|
+
handler.getOwnPropertyDescriptor = handler.getOwnPropertyDescriptor.bind(proxy);
|
|
321
337
|
// Save proxy to state so it can be accessed later
|
|
322
|
-
infos.set(proxy, { parent, prop, safe, target, primitive
|
|
338
|
+
infos.set(proxy, { parent, prop, safe, target, primitive });
|
|
323
339
|
return proxy;
|
|
324
340
|
}
|
|
325
341
|
function observable(value, unsafe) {
|
package/src/observable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ObservableComputed, ValidObservableParam } from './observableInterfaces';
|
|
2
|
-
export declare function observableComputed<T>(
|
|
2
|
+
export declare function observableComputed<T>(compute: () => ValidObservableParam<T>): ObservableComputed<T>;
|
|
@@ -3,22 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.observableComputed = void 0;
|
|
4
4
|
const observable_1 = require("./observable");
|
|
5
5
|
const observableState_1 = require("./observableState");
|
|
6
|
-
function onChanged(observable,
|
|
6
|
+
function onChanged(observable, compute) {
|
|
7
7
|
const info = observableState_1.state.infos.get(observable);
|
|
8
|
-
const value =
|
|
8
|
+
const value = compute();
|
|
9
9
|
// Temporarily disable readonly to set the new value
|
|
10
10
|
info.readonly = false;
|
|
11
11
|
observable.set(value);
|
|
12
12
|
info.readonly = true;
|
|
13
13
|
}
|
|
14
|
-
function observableComputed(
|
|
14
|
+
function observableComputed(compute) {
|
|
15
15
|
// Set isTracking so that the proxy `get` function will track accessed proxies
|
|
16
16
|
observableState_1.state.isTracking = true;
|
|
17
17
|
// Create an observable for this computed variable
|
|
18
|
-
const obs = (0, observable_1.observable)(
|
|
18
|
+
const obs = (0, observable_1.observable)(compute());
|
|
19
19
|
observableState_1.state.infos.get(obs).readonly = true;
|
|
20
20
|
// Listen to all tracked proxies
|
|
21
|
-
observableState_1.state.trackedProxies.forEach(([tracked, prop]) => (prop ? tracked.prop(prop) : tracked).on('change', onChanged.bind(this, obs,
|
|
21
|
+
observableState_1.state.trackedProxies.forEach(([tracked, prop]) => (prop ? tracked.prop(prop) : tracked).on('change', onChanged.bind(this, obs, compute)));
|
|
22
22
|
// Reset state
|
|
23
23
|
observableState_1.state.isTracking = false;
|
|
24
24
|
observableState_1.state.trackedProxies = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observableComputed.js","sourceRoot":"","sources":["../../src/observableComputed.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,uDAA0C;AAE1C,SAAS,SAAS,CAAI,UAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"observableComputed.js","sourceRoot":"","sources":["../../src/observableComputed.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,uDAA0C;AAE1C,SAAS,SAAS,CAAI,UAAsB,EAAE,OAAgB;IAC1D,MAAM,IAAI,GAAG,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IAExB,oDAAoD;IACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB,CAAI,OAAsC;IACxE,8EAA8E;IAC9E,uBAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAExB,kDAAkD;IAClD,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAI,OAAO,EAAE,CAAC,CAAC;IACrC,uBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IAErC,gCAAgC;IAChC,uBAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAC7C,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CACzF,CAAC;IAEF,cAAc;IACd,uBAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,uBAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAE1B,OAAO,GAAG,CAAC;AACf,CAAC;AAlBD,gDAkBC"}
|
package/src/observableFns.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ListenerFn, Observable, ObservableChecker, ObservableEvent, ObservableEventType, ObservableListener, OnReturnValue } from './observableInterfaces';
|
|
1
|
+
import { ListenerFn, Observable, ObservableChecker, ObservableCheckerWriteable, ObservableEvent, ObservableEventType, ObservableListener, OnReturnValue } from './observableInterfaces';
|
|
2
2
|
export declare function notifyObservable<T>(target: ObservableChecker<T>, changedValue: T, prevValue: T, path: string[]): void;
|
|
3
|
+
export declare function notifyChildrenDeleted(obs: ObservableCheckerWriteable): void;
|
|
3
4
|
export declare function disposeListener(listener: ObservableListener): void;
|
|
4
5
|
export declare function listenToObservableShallow<T>(obs: ObservableChecker<T>, callback: ListenerFn<T>): ObservableListener<T>;
|
|
5
6
|
export declare function listenToObservable<T>(obs: ObservableChecker<T>, callback: ListenerFn<T>, shallow?: boolean): ObservableListener<T>;
|
package/src/observableFns.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeIntoObservable = exports.isObservableEvent = exports.isObservable = exports.shallow = exports.prop = exports.getObservableFromPrimitive = exports.observableProp = exports.listen = exports._on = exports.unlisten = exports.onTrue = exports.onHasValue = exports.onEquals = exports.listenToObservable = exports.listenToObservableShallow = exports.disposeListener = exports.notifyObservable = void 0;
|
|
3
|
+
exports.mergeIntoObservable = exports.isObservableEvent = exports.isObservable = exports.shallow = exports.prop = exports.getObservableFromPrimitive = exports.observableProp = exports.listen = exports._on = exports.unlisten = exports.onTrue = exports.onHasValue = exports.onEquals = exports.listenToObservable = exports.listenToObservableShallow = exports.disposeListener = exports.notifyChildrenDeleted = exports.notifyObservable = void 0;
|
|
4
4
|
const tools_1 = require("@legendapp/tools");
|
|
5
5
|
const globals_1 = require("./globals");
|
|
6
6
|
const observableBatcher_1 = require("./observableBatcher");
|
|
@@ -35,10 +35,20 @@ function notifyObservable(target, changedValue, prevValue, path) {
|
|
|
35
35
|
_notify(target, { changedValue, prevValue, path });
|
|
36
36
|
}
|
|
37
37
|
exports.notifyObservable = notifyObservable;
|
|
38
|
+
function notifyChildrenDeleted(obs) {
|
|
39
|
+
const info = infos.get(obs);
|
|
40
|
+
if (info.proxies) {
|
|
41
|
+
info.proxies.forEach(notifyChildrenDeleted);
|
|
42
|
+
}
|
|
43
|
+
if (info.listeners) {
|
|
44
|
+
obs.set(undefined);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.notifyChildrenDeleted = notifyChildrenDeleted;
|
|
38
48
|
function disposeListener(listener) {
|
|
39
49
|
if (listener && !listener.isDisposed) {
|
|
40
50
|
listener.isDisposed = true;
|
|
41
|
-
const info =
|
|
51
|
+
const info = infos.get(listener.target);
|
|
42
52
|
if (info.listeners) {
|
|
43
53
|
info.listeners.delete(listener);
|
|
44
54
|
}
|
package/src/observableFns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observableFns.js","sourceRoot":"","sources":["../../src/observableFns.ts"],"names":[],"mappings":";;;AAAA,4CAA2D;AAC3D,uCAA2E;AAC3E,2DAA8D;
|
|
1
|
+
{"version":3,"file":"observableFns.js","sourceRoot":"","sources":["../../src/observableFns.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export interface ObservableListenerInfo {
|
|
|
43
43
|
path: string[];
|
|
44
44
|
}
|
|
45
45
|
export declare type ListenerFn<T> = (value: T, info: ObservableListenerInfo) => void;
|
|
46
|
-
declare type Recurse<T, K extends keyof T, TRecurse> = T[K] extends Function | Map<any, any> | WeakMap<any, any> | Set<any> | WeakSet<any> | Promise<any> ? T[K] : T[K] extends Array<any> ? T[K] & {
|
|
46
|
+
declare type Recurse<T, K extends keyof T, TRecurse> = T[K] extends Function | Map<any, any> | WeakMap<any, any> | Set<any> | WeakSet<any> | Promise<any> ? T[K] : T[K] extends Array<any> ? T[K] & ObservableProps<T[K]> & {
|
|
47
47
|
[n: number]: TRecurse extends Observable ? Observable<T[K][number]> : ObservableUnsafe<T[K][number]>;
|
|
48
48
|
} : T extends object ? TRecurse : T[K];
|
|
49
49
|
declare type ObservablePropsRecursiveUnsafe<T> = {
|
package/src/observableState.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observableState.js","sourceRoot":"","sources":["../../src/observableState.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"observableState.js","sourceRoot":"","sources":["../../src/observableState.ts"],"names":[],"mappings":";;;AAaa,QAAA,KAAK,GAAG;IACjB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,EAAkB;IACtC,cAAc,EAAE,EAAqC;IACrD,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAuB,EAAE,IAAI,EAAE,SAAqC,EAAE;IAClG,KAAK,EAAE,IAAI,OAAO,EAAgC;IAClD,aAAa,EAAE,EAAyB;IACxC,cAAc,EAAE,CAAC,KAAiB,EAAE,IAAS,EAAE,IAAe,EAAE,OAAgB,EAAE,EAAE;QAChF,oEAAoE;QACpE,qDAAqD;QACrD,IAAI,aAAK,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,GAAG,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACxE,aAAK,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM;gBACH,aAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aACrD;YAED,IAAI,aAAK,CAAC,kBAAkB,CAAC,aAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC3E,aAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;aAClC;SACJ;IACL,CAAC;CACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useComputed = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const observableComputed_1 = require("../observableComputed");
|
|
6
|
+
const useObservables_1 = require("./useObservables");
|
|
7
|
+
function useComputed(compute, observe) {
|
|
8
|
+
// Create the observableComputed
|
|
9
|
+
const obs = (0, react_1.useMemo)(() => (0, observableComputed_1.observableComputed)(compute), []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
10
|
+
if (observe !== false) {
|
|
11
|
+
(0, useObservables_1.useObservables)(() => [obs]);
|
|
12
|
+
}
|
|
13
|
+
return [obs, obs.get()];
|
|
14
|
+
}
|
|
15
|
+
exports.useComputed = useComputed;
|
|
16
|
+
//# sourceMappingURL=useComputed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useComputed.js","sourceRoot":"","sources":["../../../src/react/useComputed.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,8DAA2D;AAE3D,qDAAkD;AAElD,SAAgB,WAAW,CAAI,OAAsC,EAAE,OAAiB;IACpF,gCAAgC;IAChC,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,uCAAkB,EAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE9G,IAAI,OAAO,KAAK,KAAK,EAAE;QACnB,IAAA,+BAAc,EAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC;AATD,kCASC"}
|
|
@@ -6,4 +6,4 @@ import { MappedObservableValue, ObservableCheckerLoose } from '../observableInte
|
|
|
6
6
|
*
|
|
7
7
|
* @see https://www.legendapp.com/dev/state/react/#useobservables
|
|
8
8
|
*/
|
|
9
|
-
export declare function useObservables<T extends ObservableCheckerLoose | ObservableCheckerLoose[] | Record<string, ObservableCheckerLoose>>(fn: () => T): MappedObservableValue<T>;
|
|
9
|
+
export declare function useObservables<T extends ObservableCheckerLoose | ObservableCheckerLoose[] | Record<string, ObservableCheckerLoose>>(fn: () => T, renderComparator?: () => any): MappedObservableValue<T>;
|
|
@@ -9,6 +9,7 @@ const observableState_1 = require("../observableState");
|
|
|
9
9
|
function getRawValue(obs) {
|
|
10
10
|
return obs && ((0, observableFns_1.isObservableEvent)(obs) ? undefined : (0, observableFns_1.isObservable)(obs) ? obs.get() : obs);
|
|
11
11
|
}
|
|
12
|
+
const undef = Symbol();
|
|
12
13
|
/**
|
|
13
14
|
* A React hook that listens to observables and returns their values.
|
|
14
15
|
*
|
|
@@ -16,12 +17,13 @@ function getRawValue(obs) {
|
|
|
16
17
|
*
|
|
17
18
|
* @see https://www.legendapp.com/dev/state/react/#useobservables
|
|
18
19
|
*/
|
|
19
|
-
function useObservables(fn) {
|
|
20
|
+
function useObservables(fn, renderComparator) {
|
|
20
21
|
const forceRender = (0, react_1.useForceRender)();
|
|
21
22
|
const ref = (0, react_2.useRef)();
|
|
22
23
|
if (!ref.current) {
|
|
23
24
|
ref.current = {
|
|
24
25
|
proxies: [],
|
|
26
|
+
cmpValue: undef,
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
observableState_1.state.isTracking = true;
|
|
@@ -29,8 +31,21 @@ function useObservables(fn) {
|
|
|
29
31
|
const isArr = (0, tools_1.isArray)(args);
|
|
30
32
|
const isObj = !isArr && (0, tools_1.isObject)(args);
|
|
31
33
|
const arr = (isArr ? args : isObj ? Object.values(args) : [args]);
|
|
34
|
+
const onChange = (0, react_1.useStableCallback)(() => {
|
|
35
|
+
if (!renderComparator) {
|
|
36
|
+
return forceRender();
|
|
37
|
+
}
|
|
38
|
+
const val = renderComparator();
|
|
39
|
+
if (val !== ref.current.cmpValue) {
|
|
40
|
+
ref.current.cmpValue = val;
|
|
41
|
+
forceRender();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
32
44
|
// Compare to previous args and update listeners if any changed or first mount
|
|
33
|
-
updateListeners(arr, ref.current,
|
|
45
|
+
updateListeners(arr, ref.current, onChange);
|
|
46
|
+
if (renderComparator && ref.current.cmpValue === undef) {
|
|
47
|
+
ref.current.cmpValue = renderComparator();
|
|
48
|
+
}
|
|
34
49
|
// Reset state
|
|
35
50
|
observableState_1.state.isTracking = false;
|
|
36
51
|
observableState_1.state.trackedProxies = [];
|
|
@@ -56,7 +71,7 @@ function useObservables(fn) {
|
|
|
56
71
|
}
|
|
57
72
|
}
|
|
58
73
|
exports.useObservables = useObservables;
|
|
59
|
-
|
|
74
|
+
function updateListeners(ret, saved, onChange) {
|
|
60
75
|
const tracked = observableState_1.state.trackedProxies;
|
|
61
76
|
const trackedRoots = observableState_1.state.trackedRootProxies;
|
|
62
77
|
// Passing the root of an observable will not trigger any tracking from the proxies, so
|
|
@@ -110,5 +125,5 @@ const updateListeners = (ret, saved, onChange) => {
|
|
|
110
125
|
}
|
|
111
126
|
}
|
|
112
127
|
}
|
|
113
|
-
}
|
|
128
|
+
}
|
|
114
129
|
//# sourceMappingURL=useObservables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useObservables.js","sourceRoot":"","sources":["../../../src/react/useObservables.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"useObservables.js","sourceRoot":"","sources":["../../../src/react/useObservables.ts"],"names":[],"mappings":"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"}
|