@tamagui/use-store 1.58.6 → 1.58.8
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 +3 -3
- package/dist/cjs/Store.js +0 -101
- package/dist/cjs/Store.js.map +0 -6
- package/dist/cjs/reaction.js +0 -78
- package/dist/cjs/reaction.js.map +0 -6
- package/dist/cjs/selector.js +0 -139
- package/dist/cjs/selector.js.map +0 -6
- package/dist/cjs/useAsyncExternalStore.js +0 -42
- package/dist/cjs/useAsyncExternalStore.js.map +0 -6
- package/dist/esm/Store.js +0 -71
- package/dist/esm/Store.js.map +0 -6
- package/dist/esm/reaction.js +0 -53
- package/dist/esm/reaction.js.map +0 -6
- package/dist/esm/selector.js +0 -114
- package/dist/esm/selector.js.map +0 -6
- package/dist/esm/useAsyncExternalStore.js +0 -18
- package/dist/esm/useAsyncExternalStore.js.map +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/use-store",
|
|
3
|
-
"version": "1.58.
|
|
3
|
+
"version": "1.58.8",
|
|
4
4
|
"types": "./types/index.d.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/simple-hash": "1.58.
|
|
30
|
+
"@tamagui/simple-hash": "1.58.8"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tamagui/build": "1.58.
|
|
33
|
+
"@tamagui/build": "1.58.8",
|
|
34
34
|
"@testing-library/react": "^14.0.0",
|
|
35
35
|
"react": "^18.2.0",
|
|
36
36
|
"vitest": "^0.34.3"
|
package/dist/cjs/Store.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var Store_exports = {};
|
|
20
|
-
__export(Store_exports, {
|
|
21
|
-
ADD_TRACKER: () => ADD_TRACKER,
|
|
22
|
-
SHOULD_DEBUG: () => SHOULD_DEBUG,
|
|
23
|
-
Store: () => Store,
|
|
24
|
-
TRACK: () => TRACK,
|
|
25
|
-
TRIGGER_UPDATE: () => TRIGGER_UPDATE,
|
|
26
|
-
disableTracking: () => disableTracking,
|
|
27
|
-
setDisableStoreTracking: () => setDisableStoreTracking
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(Store_exports);
|
|
30
|
-
var import_constants = require("./constants");
|
|
31
|
-
var import_useStoreDebug = require("./useStoreDebug");
|
|
32
|
-
const TRIGGER_UPDATE = Symbol();
|
|
33
|
-
const ADD_TRACKER = Symbol();
|
|
34
|
-
const TRACK = Symbol();
|
|
35
|
-
const SHOULD_DEBUG = Symbol();
|
|
36
|
-
const disableTracking = /* @__PURE__ */ new WeakMap();
|
|
37
|
-
const setDisableStoreTracking = (storeInstance, val) => {
|
|
38
|
-
const store = storeInstance[import_constants.UNWRAP_PROXY] ?? storeInstance;
|
|
39
|
-
disableTracking.set(store, val);
|
|
40
|
-
};
|
|
41
|
-
class Store {
|
|
42
|
-
constructor(props) {
|
|
43
|
-
this.props = props;
|
|
44
|
-
this._listeners = /* @__PURE__ */ new Set();
|
|
45
|
-
this._trackers = /* @__PURE__ */ new Set();
|
|
46
|
-
this._version = 0;
|
|
47
|
-
this.subscribe = (onChanged) => {
|
|
48
|
-
this._listeners.add(onChanged);
|
|
49
|
-
return () => {
|
|
50
|
-
this._listeners.delete(onChanged);
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
[TRIGGER_UPDATE]() {
|
|
55
|
-
this._version = (this._version + 1) % Number.MAX_SAFE_INTEGER;
|
|
56
|
-
for (const cb of this._listeners) {
|
|
57
|
-
cb();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// [ADD_TRACKER](tracker: StoreTracker) {
|
|
61
|
-
// this._trackers.add(tracker)
|
|
62
|
-
// return () => {
|
|
63
|
-
// this._trackers.delete(tracker)
|
|
64
|
-
// }
|
|
65
|
-
// }
|
|
66
|
-
// [TRACK](key: string, debug?: boolean) {
|
|
67
|
-
// if (key[0] === '_' || key[0] === '$' || key === 'props' || key === 'toJSON') {
|
|
68
|
-
// return
|
|
69
|
-
// }
|
|
70
|
-
// if (debug) {
|
|
71
|
-
// // rome-ignore lint/nursery/noConsoleLog: <explanation>
|
|
72
|
-
// console.log('(debug) CHECK TRACKERS FOR', key)
|
|
73
|
-
// }
|
|
74
|
-
// for (const tracker of this._trackers) {
|
|
75
|
-
// if (tracker.isTracking) {
|
|
76
|
-
// tracker.tracked.add(key)
|
|
77
|
-
// if (debug) {
|
|
78
|
-
// // rome-ignore lint/nursery/noConsoleLog: <explanation>
|
|
79
|
-
// console.log('(debug) TRACK', key, tracker)
|
|
80
|
-
// }
|
|
81
|
-
// }
|
|
82
|
-
// }
|
|
83
|
-
// }
|
|
84
|
-
[SHOULD_DEBUG]() {
|
|
85
|
-
const info = { storeInstance: this };
|
|
86
|
-
return [...this._trackers].some(
|
|
87
|
-
(tracker) => tracker.component && (0, import_useStoreDebug.shouldDebug)(tracker.component, info)
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
92
|
-
0 && (module.exports = {
|
|
93
|
-
ADD_TRACKER,
|
|
94
|
-
SHOULD_DEBUG,
|
|
95
|
-
Store,
|
|
96
|
-
TRACK,
|
|
97
|
-
TRIGGER_UPDATE,
|
|
98
|
-
disableTracking,
|
|
99
|
-
setDisableStoreTracking
|
|
100
|
-
});
|
|
101
|
-
//# sourceMappingURL=Store.js.map
|
package/dist/cjs/Store.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Store.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAC7B,2BAA4B;AAErB,MAAM,iBAAiB,OAAO;AAC9B,MAAM,cAAc,OAAO;AAC3B,MAAM,QAAQ,OAAO;AACrB,MAAM,eAAe,OAAO;AAS5B,MAAM,kBAAkB,oBAAI,QAAQ;AAEpC,MAAM,0BAA0B,CAAC,eAAoB,QAAiB;AAC3E,QAAM,QAAQ,cAAc,6BAAY,KAAK;AAC7C,kBAAgB,IAAI,OAAO,GAAG;AAChC;AAEO,MAAM,MAAiC;AAAA,EAK5C,YAAmB,OAAc;AAAd;AAJnB,SAAQ,aAAa,oBAAI,IAAc;AACvC,SAAQ,YAAY,oBAAI,IAAkB;AAC1C,oBAAW;AAIX,qBAAY,CAAC,cAAwB;AACnC,WAAK,WAAW,IAAI,SAAS;AAC7B,aAAO,MAAM;AACX,aAAK,WAAW,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EAPkC;AAAA,EASlC,CAAC,cAAc,IAAI;AACjB,SAAK,YAAY,KAAK,WAAW,KAAK,OAAO;AAC7C,eAAW,MAAM,KAAK,YAAY;AAChC,SAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BA,CAAC,YAAY,IAAI;AACf,UAAM,OAAO,EAAE,eAAe,KAAK;AACnC,WAAO,CAAC,GAAG,KAAK,SAAS,EAAE;AAAA,MACzB,CAAC,YAAY,QAAQ,iBAAa,kCAAY,QAAQ,WAAW,IAAI;AAAA,IACvE;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/cjs/reaction.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var reaction_exports = {};
|
|
20
|
-
__export(reaction_exports, {
|
|
21
|
-
reaction: () => reaction,
|
|
22
|
-
useReaction: () => useReaction
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(reaction_exports);
|
|
25
|
-
var import_react = require("react");
|
|
26
|
-
var import_comparators = require("./comparators");
|
|
27
|
-
var import_constants = require("./constants");
|
|
28
|
-
var import_useStore = require("./useStore");
|
|
29
|
-
const dispose = (d) => {
|
|
30
|
-
if (typeof d === "function") {
|
|
31
|
-
d();
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
function useReaction(store, selector, receiver, equalityFn = import_comparators.isEqualSubsetShallow, memoArgs) {
|
|
35
|
-
return (0, import_react.useMemo)(() => reaction(store, selector, receiver, equalityFn), [memoArgs]);
|
|
36
|
-
}
|
|
37
|
-
function reaction(store, selector, receiver, equalityFn = import_comparators.isEqualSubsetShallow) {
|
|
38
|
-
let last = void 0;
|
|
39
|
-
let innerDispose;
|
|
40
|
-
function updateReaction() {
|
|
41
|
-
var _a;
|
|
42
|
-
try {
|
|
43
|
-
(0, import_useStore.setIsInReaction)(true);
|
|
44
|
-
const storeInstance = store[import_constants.UNWRAP_PROXY] || store;
|
|
45
|
-
const next = selector(storeInstance);
|
|
46
|
-
if (!equalityFn(last, next)) {
|
|
47
|
-
if (process.env.NODE_ENV === "development") {
|
|
48
|
-
console.groupCollapsed(
|
|
49
|
-
`\u{1F311} \u23ED %c${receiver.name.padStart(24)} (${storeInstance.constructor.name}${((_a = store.props) == null ? void 0 : _a.id) ? `:${store.props.id}` : ""}) ${last} => ${next}`,
|
|
50
|
-
"color: chocolate;"
|
|
51
|
-
);
|
|
52
|
-
console.groupCollapsed("trace >");
|
|
53
|
-
console.trace();
|
|
54
|
-
console.groupEnd();
|
|
55
|
-
console.log(" ARG", next);
|
|
56
|
-
console.groupEnd();
|
|
57
|
-
}
|
|
58
|
-
dispose(innerDispose);
|
|
59
|
-
last = next;
|
|
60
|
-
innerDispose = receiver(next);
|
|
61
|
-
}
|
|
62
|
-
} finally {
|
|
63
|
-
(0, import_useStore.setIsInReaction)(false);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const disposeSubscribe = store.subscribe(updateReaction);
|
|
67
|
-
updateReaction();
|
|
68
|
-
return () => {
|
|
69
|
-
disposeSubscribe();
|
|
70
|
-
dispose(innerDispose);
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
-
0 && (module.exports = {
|
|
75
|
-
reaction,
|
|
76
|
-
useReaction
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=reaction.js.map
|
package/dist/cjs/reaction.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/reaction.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwB;AAExB,yBAAqC;AACrC,uBAA6B;AAE7B,sBAAgC;AAEhC,MAAM,UAAU,CAAC,MAAW;AAC1B,MAAI,OAAO,MAAM,YAAY;AAC3B,MAAE;AAAA,EACJ;AACF;AAEO,SAAS,YAId,OACA,UACA,UAGA,aAA0C,yCAC1C,UACA;AACA,aAAO,sBAAQ,MAAM,SAAS,OAAO,UAAU,UAAU,UAAU,GAAG,CAAC,QAAQ,CAAC;AAClF;AAEO,SAAS,SAId,OACA,UACA,UAGA,aAA0C,yCAC1C;AACA,MAAI,OAAY;AAChB,MAAI;AAEJ,WAAS,iBAAiB;AA1C5B;AA2CI,QAAI;AACF,2CAAgB,IAAI;AACpB,YAAM,gBAAgB,MAAM,6BAAY,KAAK;AAC7C,YAAM,OAAO,SAAS,aAAa;AACnC,UAAI,CAAC,WAAW,MAAM,IAAI,GAAG;AAC3B,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAQ;AAAA,YACN,uBAAW,SAAS,KAAK,SAAS,EAAE,CAAC,KAAK,cAAc,YAAY,IAAI,KACtE,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,EAAE,KAAK,EAC3C,KAAK,IAAI,OAAO,IAAI;AAAA,YACpB;AAAA,UACF;AACA,kBAAQ,eAAe,SAAS;AAChC,kBAAQ,MAAM;AACd,kBAAQ,SAAS;AAEjB,kBAAQ,IAAI,SAAS,IAAI;AACzB,kBAAQ,SAAS;AAAA,QACnB;AACA,gBAAQ,YAAY;AACpB,eAAO;AACP,uBAAe,SAAS,IAAI;AAAA,MAC9B;AAAA,IACF,UAAE;AACA,2CAAgB,KAAK;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAM,UAAU,cAAc;AACvD,iBAAe;AAEf,SAAO,MAAM;AACX,qBAAiB;AACjB,YAAQ,YAAY;AAAA,EACtB;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/cjs/selector.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var selector_exports = {};
|
|
20
|
-
__export(selector_exports, {
|
|
21
|
-
selector: () => selector,
|
|
22
|
-
useSelector: () => useSelector
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(selector_exports);
|
|
25
|
-
var import_react = require("react");
|
|
26
|
-
var import_comparators = require("./comparators");
|
|
27
|
-
var import_constants = require("./constants");
|
|
28
|
-
var import_useStore = require("./useStore");
|
|
29
|
-
const logUpdate = process.env.NODE_ENV === "development" ? (fn, stores, last, next) => {
|
|
30
|
-
const getStoreLogName = (store) => {
|
|
31
|
-
var _a;
|
|
32
|
-
const str = store[import_constants.UNWRAP_PROXY] ?? store;
|
|
33
|
-
return `${str.constructor.name}${((_a = store.props) == null ? void 0 : _a.id) ? `:${store.props.id}` : ""}`;
|
|
34
|
-
};
|
|
35
|
-
const storeNames = stores.map(getStoreLogName).join(", ");
|
|
36
|
-
const name = `\u{1F311} \u25B6\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;
|
|
37
|
-
console.groupCollapsed(name, "color: tomato;");
|
|
38
|
-
console.groupCollapsed("trace >");
|
|
39
|
-
console.trace();
|
|
40
|
-
console.groupEnd();
|
|
41
|
-
console.log(" next", next);
|
|
42
|
-
console.groupEnd();
|
|
43
|
-
} : null;
|
|
44
|
-
function selector(fn) {
|
|
45
|
-
let prev = runStoreSelector(fn);
|
|
46
|
-
let disposeValue = null;
|
|
47
|
-
const subscribe = () => {
|
|
48
|
-
return subscribeToStores([...prev.stores], () => {
|
|
49
|
-
try {
|
|
50
|
-
disposeValue == null ? void 0 : disposeValue();
|
|
51
|
-
(0, import_useStore.setIsInReaction)(true);
|
|
52
|
-
const next = runStoreSelector(fn);
|
|
53
|
-
if (typeof next.value === "function") {
|
|
54
|
-
disposeValue = next.value;
|
|
55
|
-
if (process.env.NODE_ENV === "development") {
|
|
56
|
-
logUpdate(fn, [...next.stores], "(fn)", "(fn)");
|
|
57
|
-
}
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if ((0, import_comparators.isEqualSubsetShallow)(prev.stores, next.stores) && (0, import_comparators.isEqualSubsetShallow)(prev.value, next.value)) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (process.env.NODE_ENV === "development") {
|
|
64
|
-
logUpdate(fn, [...next.stores], prev.value, next.value);
|
|
65
|
-
}
|
|
66
|
-
prev = next;
|
|
67
|
-
dispose();
|
|
68
|
-
dispose = subscribe();
|
|
69
|
-
} finally {
|
|
70
|
-
(0, import_useStore.setIsInReaction)(false);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
let dispose = subscribe();
|
|
75
|
-
return () => {
|
|
76
|
-
dispose();
|
|
77
|
-
disposeValue == null ? void 0 : disposeValue();
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
function useSelector(fn) {
|
|
81
|
-
const [state, setState] = (0, import_react.useState)(() => {
|
|
82
|
-
return runStoreSelector(fn);
|
|
83
|
-
});
|
|
84
|
-
(0, import_react.useEffect)(() => {
|
|
85
|
-
let dispose;
|
|
86
|
-
const unsub = subscribeToStores([...state.stores], () => {
|
|
87
|
-
dispose == null ? void 0 : dispose();
|
|
88
|
-
const next = runStoreSelector(fn);
|
|
89
|
-
if (typeof next.value === "function") {
|
|
90
|
-
if (process.env.NODE_ENV === "development") {
|
|
91
|
-
logUpdate(fn, [...next.stores], "(fn)", "(fn)");
|
|
92
|
-
}
|
|
93
|
-
dispose = next.value;
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
setState((prev) => {
|
|
97
|
-
if ((0, import_comparators.isEqualSubsetShallow)(prev.stores, next.stores) && (0, import_comparators.isEqualSubsetShallow)(prev.value, next.value)) {
|
|
98
|
-
return prev;
|
|
99
|
-
}
|
|
100
|
-
if (process.env.NODE_ENV === "development") {
|
|
101
|
-
logUpdate(fn, [...next.stores], prev.value, next.value);
|
|
102
|
-
}
|
|
103
|
-
return next;
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
return () => {
|
|
107
|
-
unsub();
|
|
108
|
-
dispose == null ? void 0 : dispose();
|
|
109
|
-
};
|
|
110
|
-
}, [...state.stores]);
|
|
111
|
-
return state.value;
|
|
112
|
-
}
|
|
113
|
-
function runStoreSelector(selector2) {
|
|
114
|
-
const stores = /* @__PURE__ */ new Set();
|
|
115
|
-
const dispose = (0, import_useStore.trackStoresAccess)((store) => {
|
|
116
|
-
stores.add(store);
|
|
117
|
-
});
|
|
118
|
-
const value = selector2();
|
|
119
|
-
dispose();
|
|
120
|
-
return {
|
|
121
|
-
value,
|
|
122
|
-
stores
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
function subscribeToStores(stores, onUpdate) {
|
|
126
|
-
const disposes = [];
|
|
127
|
-
for (const store of stores) {
|
|
128
|
-
disposes.push(store.subscribe(onUpdate));
|
|
129
|
-
}
|
|
130
|
-
return () => {
|
|
131
|
-
disposes.forEach((x) => x());
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
-
0 && (module.exports = {
|
|
136
|
-
selector,
|
|
137
|
-
useSelector
|
|
138
|
-
});
|
|
139
|
-
//# sourceMappingURL=selector.js.map
|
package/dist/cjs/selector.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/selector.tsx"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["selector"]
|
|
6
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var useAsyncExternalStore_exports = {};
|
|
20
|
-
__export(useAsyncExternalStore_exports, {
|
|
21
|
-
useAsyncExternalStore: () => useAsyncExternalStore
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(useAsyncExternalStore_exports);
|
|
24
|
-
var import_react = require("react");
|
|
25
|
-
function useAsyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
|
|
26
|
-
const [storeState, setStoreState] = (0, import_react.useState)(getServerSnapshot);
|
|
27
|
-
if (typeof document !== "undefined") {
|
|
28
|
-
(0, import_react.useLayoutEffect)(() => {
|
|
29
|
-
return subscribe((next) => {
|
|
30
|
-
(0, import_react.startTransition)(() => {
|
|
31
|
-
setStoreState(getSnapshot(next));
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
}, [subscribe]);
|
|
35
|
-
}
|
|
36
|
-
return storeState;
|
|
37
|
-
}
|
|
38
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
-
0 && (module.exports = {
|
|
40
|
-
useAsyncExternalStore
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=useAsyncExternalStore.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/useAsyncExternalStore.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2D;AAEpD,SAAS,sBACd,WACA,aACA,mBACA;AACA,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,iBAAiB;AAE9D,MAAI,OAAO,aAAa,aAAa;AACnC,sCAAgB,MAAM;AACpB,aAAO,UAAU,CAAC,SAAc;AAC9B,0CAAgB,MAAM;AACpB,wBAAc,YAAY,IAAI,CAAC;AAAA,QACjC,CAAC;AAAA,MACH,CAAC;AAAA,IACH,GAAG,CAAC,SAAS,CAAC;AAAA,EAChB;AAEA,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/Store.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { UNWRAP_PROXY } from "./constants";
|
|
2
|
-
import { shouldDebug } from "./useStoreDebug";
|
|
3
|
-
const TRIGGER_UPDATE = Symbol();
|
|
4
|
-
const ADD_TRACKER = Symbol();
|
|
5
|
-
const TRACK = Symbol();
|
|
6
|
-
const SHOULD_DEBUG = Symbol();
|
|
7
|
-
const disableTracking = /* @__PURE__ */ new WeakMap();
|
|
8
|
-
const setDisableStoreTracking = (storeInstance, val) => {
|
|
9
|
-
const store = storeInstance[UNWRAP_PROXY] ?? storeInstance;
|
|
10
|
-
disableTracking.set(store, val);
|
|
11
|
-
};
|
|
12
|
-
class Store {
|
|
13
|
-
constructor(props) {
|
|
14
|
-
this.props = props;
|
|
15
|
-
this._listeners = /* @__PURE__ */ new Set();
|
|
16
|
-
this._trackers = /* @__PURE__ */ new Set();
|
|
17
|
-
this._version = 0;
|
|
18
|
-
this.subscribe = (onChanged) => {
|
|
19
|
-
this._listeners.add(onChanged);
|
|
20
|
-
return () => {
|
|
21
|
-
this._listeners.delete(onChanged);
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
[TRIGGER_UPDATE]() {
|
|
26
|
-
this._version = (this._version + 1) % Number.MAX_SAFE_INTEGER;
|
|
27
|
-
for (const cb of this._listeners) {
|
|
28
|
-
cb();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
// [ADD_TRACKER](tracker: StoreTracker) {
|
|
32
|
-
// this._trackers.add(tracker)
|
|
33
|
-
// return () => {
|
|
34
|
-
// this._trackers.delete(tracker)
|
|
35
|
-
// }
|
|
36
|
-
// }
|
|
37
|
-
// [TRACK](key: string, debug?: boolean) {
|
|
38
|
-
// if (key[0] === '_' || key[0] === '$' || key === 'props' || key === 'toJSON') {
|
|
39
|
-
// return
|
|
40
|
-
// }
|
|
41
|
-
// if (debug) {
|
|
42
|
-
// // rome-ignore lint/nursery/noConsoleLog: <explanation>
|
|
43
|
-
// console.log('(debug) CHECK TRACKERS FOR', key)
|
|
44
|
-
// }
|
|
45
|
-
// for (const tracker of this._trackers) {
|
|
46
|
-
// if (tracker.isTracking) {
|
|
47
|
-
// tracker.tracked.add(key)
|
|
48
|
-
// if (debug) {
|
|
49
|
-
// // rome-ignore lint/nursery/noConsoleLog: <explanation>
|
|
50
|
-
// console.log('(debug) TRACK', key, tracker)
|
|
51
|
-
// }
|
|
52
|
-
// }
|
|
53
|
-
// }
|
|
54
|
-
// }
|
|
55
|
-
[SHOULD_DEBUG]() {
|
|
56
|
-
const info = { storeInstance: this };
|
|
57
|
-
return [...this._trackers].some(
|
|
58
|
-
(tracker) => tracker.component && shouldDebug(tracker.component, info)
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export {
|
|
63
|
-
ADD_TRACKER,
|
|
64
|
-
SHOULD_DEBUG,
|
|
65
|
-
Store,
|
|
66
|
-
TRACK,
|
|
67
|
-
TRIGGER_UPDATE,
|
|
68
|
-
disableTracking,
|
|
69
|
-
setDisableStoreTracking
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=Store.js.map
|
package/dist/esm/Store.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Store.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAErB,MAAM,iBAAiB,OAAO;AAC9B,MAAM,cAAc,OAAO;AAC3B,MAAM,QAAQ,OAAO;AACrB,MAAM,eAAe,OAAO;AAS5B,MAAM,kBAAkB,oBAAI,QAAQ;AAEpC,MAAM,0BAA0B,CAAC,eAAoB,QAAiB;AAC3E,QAAM,QAAQ,cAAc,YAAY,KAAK;AAC7C,kBAAgB,IAAI,OAAO,GAAG;AAChC;AAEO,MAAM,MAAiC;AAAA,EAK5C,YAAmB,OAAc;AAAd;AAJnB,SAAQ,aAAa,oBAAI,IAAc;AACvC,SAAQ,YAAY,oBAAI,IAAkB;AAC1C,oBAAW;AAIX,qBAAY,CAAC,cAAwB;AACnC,WAAK,WAAW,IAAI,SAAS;AAC7B,aAAO,MAAM;AACX,aAAK,WAAW,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EAPkC;AAAA,EASlC,CAAC,cAAc,IAAI;AACjB,SAAK,YAAY,KAAK,WAAW,KAAK,OAAO;AAC7C,eAAW,MAAM,KAAK,YAAY;AAChC,SAAG;AAAA,IACL;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BA,CAAC,YAAY,IAAI;AACf,UAAM,OAAO,EAAE,eAAe,KAAK;AACnC,WAAO,CAAC,GAAG,KAAK,SAAS,EAAE;AAAA,MACzB,CAAC,YAAY,QAAQ,aAAa,YAAY,QAAQ,WAAW,IAAI;AAAA,IACvE;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/reaction.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { isEqualSubsetShallow } from "./comparators";
|
|
3
|
-
import { UNWRAP_PROXY } from "./constants";
|
|
4
|
-
import { setIsInReaction } from "./useStore";
|
|
5
|
-
const dispose = (d) => {
|
|
6
|
-
if (typeof d === "function") {
|
|
7
|
-
d();
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
function useReaction(store, selector, receiver, equalityFn = isEqualSubsetShallow, memoArgs) {
|
|
11
|
-
return useMemo(() => reaction(store, selector, receiver, equalityFn), [memoArgs]);
|
|
12
|
-
}
|
|
13
|
-
function reaction(store, selector, receiver, equalityFn = isEqualSubsetShallow) {
|
|
14
|
-
let last = void 0;
|
|
15
|
-
let innerDispose;
|
|
16
|
-
function updateReaction() {
|
|
17
|
-
var _a;
|
|
18
|
-
try {
|
|
19
|
-
setIsInReaction(true);
|
|
20
|
-
const storeInstance = store[UNWRAP_PROXY] || store;
|
|
21
|
-
const next = selector(storeInstance);
|
|
22
|
-
if (!equalityFn(last, next)) {
|
|
23
|
-
if (process.env.NODE_ENV === "development") {
|
|
24
|
-
console.groupCollapsed(
|
|
25
|
-
`\u{1F311} \u23ED %c${receiver.name.padStart(24)} (${storeInstance.constructor.name}${((_a = store.props) == null ? void 0 : _a.id) ? `:${store.props.id}` : ""}) ${last} => ${next}`,
|
|
26
|
-
"color: chocolate;"
|
|
27
|
-
);
|
|
28
|
-
console.groupCollapsed("trace >");
|
|
29
|
-
console.trace();
|
|
30
|
-
console.groupEnd();
|
|
31
|
-
console.log(" ARG", next);
|
|
32
|
-
console.groupEnd();
|
|
33
|
-
}
|
|
34
|
-
dispose(innerDispose);
|
|
35
|
-
last = next;
|
|
36
|
-
innerDispose = receiver(next);
|
|
37
|
-
}
|
|
38
|
-
} finally {
|
|
39
|
-
setIsInReaction(false);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
const disposeSubscribe = store.subscribe(updateReaction);
|
|
43
|
-
updateReaction();
|
|
44
|
-
return () => {
|
|
45
|
-
disposeSubscribe();
|
|
46
|
-
dispose(innerDispose);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export {
|
|
50
|
-
reaction,
|
|
51
|
-
useReaction
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=reaction.js.map
|
package/dist/esm/reaction.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/reaction.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B,SAAS,uBAAuB;AAEhC,MAAM,UAAU,CAAC,MAAW;AAC1B,MAAI,OAAO,MAAM,YAAY;AAC3B,MAAE;AAAA,EACJ;AACF;AAEO,SAAS,YAId,OACA,UACA,UAGA,aAA0C,sBAC1C,UACA;AACA,SAAO,QAAQ,MAAM,SAAS,OAAO,UAAU,UAAU,UAAU,GAAG,CAAC,QAAQ,CAAC;AAClF;AAEO,SAAS,SAId,OACA,UACA,UAGA,aAA0C,sBAC1C;AACA,MAAI,OAAY;AAChB,MAAI;AAEJ,WAAS,iBAAiB;AA1C5B;AA2CI,QAAI;AACF,sBAAgB,IAAI;AACpB,YAAM,gBAAgB,MAAM,YAAY,KAAK;AAC7C,YAAM,OAAO,SAAS,aAAa;AACnC,UAAI,CAAC,WAAW,MAAM,IAAI,GAAG;AAC3B,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAQ;AAAA,YACN,uBAAW,SAAS,KAAK,SAAS,EAAE,CAAC,KAAK,cAAc,YAAY,IAAI,KACtE,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,EAAE,KAAK,EAC3C,KAAK,IAAI,OAAO,IAAI;AAAA,YACpB;AAAA,UACF;AACA,kBAAQ,eAAe,SAAS;AAChC,kBAAQ,MAAM;AACd,kBAAQ,SAAS;AAEjB,kBAAQ,IAAI,SAAS,IAAI;AACzB,kBAAQ,SAAS;AAAA,QACnB;AACA,gBAAQ,YAAY;AACpB,eAAO;AACP,uBAAe,SAAS,IAAI;AAAA,MAC9B;AAAA,IACF,UAAE;AACA,sBAAgB,KAAK;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAM,UAAU,cAAc;AACvD,iBAAe;AAEf,SAAO,MAAM;AACX,qBAAiB;AACjB,YAAQ,YAAY;AAAA,EACtB;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/selector.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
2
|
-
import { isEqualSubsetShallow } from "./comparators";
|
|
3
|
-
import { UNWRAP_PROXY } from "./constants";
|
|
4
|
-
import { setIsInReaction, trackStoresAccess } from "./useStore";
|
|
5
|
-
const logUpdate = process.env.NODE_ENV === "development" ? (fn, stores, last, next) => {
|
|
6
|
-
const getStoreLogName = (store) => {
|
|
7
|
-
var _a;
|
|
8
|
-
const str = store[UNWRAP_PROXY] ?? store;
|
|
9
|
-
return `${str.constructor.name}${((_a = store.props) == null ? void 0 : _a.id) ? `:${store.props.id}` : ""}`;
|
|
10
|
-
};
|
|
11
|
-
const storeNames = stores.map(getStoreLogName).join(", ");
|
|
12
|
-
const name = `\u{1F311} \u25B6\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;
|
|
13
|
-
console.groupCollapsed(name, "color: tomato;");
|
|
14
|
-
console.groupCollapsed("trace >");
|
|
15
|
-
console.trace();
|
|
16
|
-
console.groupEnd();
|
|
17
|
-
console.log(" next", next);
|
|
18
|
-
console.groupEnd();
|
|
19
|
-
} : null;
|
|
20
|
-
function selector(fn) {
|
|
21
|
-
let prev = runStoreSelector(fn);
|
|
22
|
-
let disposeValue = null;
|
|
23
|
-
const subscribe = () => {
|
|
24
|
-
return subscribeToStores([...prev.stores], () => {
|
|
25
|
-
try {
|
|
26
|
-
disposeValue == null ? void 0 : disposeValue();
|
|
27
|
-
setIsInReaction(true);
|
|
28
|
-
const next = runStoreSelector(fn);
|
|
29
|
-
if (typeof next.value === "function") {
|
|
30
|
-
disposeValue = next.value;
|
|
31
|
-
if (process.env.NODE_ENV === "development") {
|
|
32
|
-
logUpdate(fn, [...next.stores], "(fn)", "(fn)");
|
|
33
|
-
}
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (isEqualSubsetShallow(prev.stores, next.stores) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (process.env.NODE_ENV === "development") {
|
|
40
|
-
logUpdate(fn, [...next.stores], prev.value, next.value);
|
|
41
|
-
}
|
|
42
|
-
prev = next;
|
|
43
|
-
dispose();
|
|
44
|
-
dispose = subscribe();
|
|
45
|
-
} finally {
|
|
46
|
-
setIsInReaction(false);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
let dispose = subscribe();
|
|
51
|
-
return () => {
|
|
52
|
-
dispose();
|
|
53
|
-
disposeValue == null ? void 0 : disposeValue();
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function useSelector(fn) {
|
|
57
|
-
const [state, setState] = useState(() => {
|
|
58
|
-
return runStoreSelector(fn);
|
|
59
|
-
});
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
let dispose;
|
|
62
|
-
const unsub = subscribeToStores([...state.stores], () => {
|
|
63
|
-
dispose == null ? void 0 : dispose();
|
|
64
|
-
const next = runStoreSelector(fn);
|
|
65
|
-
if (typeof next.value === "function") {
|
|
66
|
-
if (process.env.NODE_ENV === "development") {
|
|
67
|
-
logUpdate(fn, [...next.stores], "(fn)", "(fn)");
|
|
68
|
-
}
|
|
69
|
-
dispose = next.value;
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
setState((prev) => {
|
|
73
|
-
if (isEqualSubsetShallow(prev.stores, next.stores) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
74
|
-
return prev;
|
|
75
|
-
}
|
|
76
|
-
if (process.env.NODE_ENV === "development") {
|
|
77
|
-
logUpdate(fn, [...next.stores], prev.value, next.value);
|
|
78
|
-
}
|
|
79
|
-
return next;
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
return () => {
|
|
83
|
-
unsub();
|
|
84
|
-
dispose == null ? void 0 : dispose();
|
|
85
|
-
};
|
|
86
|
-
}, [...state.stores]);
|
|
87
|
-
return state.value;
|
|
88
|
-
}
|
|
89
|
-
function runStoreSelector(selector2) {
|
|
90
|
-
const stores = /* @__PURE__ */ new Set();
|
|
91
|
-
const dispose = trackStoresAccess((store) => {
|
|
92
|
-
stores.add(store);
|
|
93
|
-
});
|
|
94
|
-
const value = selector2();
|
|
95
|
-
dispose();
|
|
96
|
-
return {
|
|
97
|
-
value,
|
|
98
|
-
stores
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
function subscribeToStores(stores, onUpdate) {
|
|
102
|
-
const disposes = [];
|
|
103
|
-
for (const store of stores) {
|
|
104
|
-
disposes.push(store.subscribe(onUpdate));
|
|
105
|
-
}
|
|
106
|
-
return () => {
|
|
107
|
-
disposes.forEach((x) => x());
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
export {
|
|
111
|
-
selector,
|
|
112
|
-
useSelector
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=selector.js.map
|
package/dist/esm/selector.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/selector.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,WAAW,gBAAgB;AAEpC,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB,yBAAyB;AAInD,MAAM,YACJ,QAAQ,IAAI,aAAa,gBACrB,CAAC,IAAS,QAAe,MAAW,SAAc;AAChD,QAAM,kBAAkB,CAAC,UAAe;AAXhD;AAYU,UAAM,MAAM,MAAM,YAAY,KAAK;AACnC,WAAO,GAAG,IAAI,YAAY,IAAI,KAAG,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE;AAAA,EAC9E;AACA,QAAM,aAAa,OAAO,IAAI,eAAe,EAAE,KAAK,IAAI;AACxD,QAAM,OAAO,6BAAY,GAAG,IAAI,IAAI,UAAU,OAAO,IAAI,OAAO,IAAI;AACpE,UAAQ,eAAe,MAAM,gBAAgB;AAC7C,UAAQ,eAAe,SAAS;AAChC,UAAQ,MAAM;AACd,UAAQ,SAAS;AAEjB,UAAQ,IAAI,UAAU,IAAI;AAC1B,UAAQ,SAAS;AACnB,IACA;AAGC,SAAS,SAAS,IAAe;AACtC,MAAI,OAAO,iBAAiB,EAAE;AAC9B,MAAI,eAAgC;AACpC,QAAM,YAAY,MAAM;AACtB,WAAO,kBAAkB,CAAC,GAAG,KAAK,MAAM,GAAG,MAAM;AAC/C,UAAI;AACF;AACA,wBAAgB,IAAI;AACpB,cAAM,OAAO,iBAAiB,EAAE;AAChC,YAAI,OAAO,KAAK,UAAU,YAAY;AACpC,yBAAe,KAAK;AACpB,cAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,sBAAW,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,QAAQ,MAAM;AAAA,UACjD;AACA;AAAA,QACF;AACA,YACE,qBAAqB,KAAK,QAAQ,KAAK,MAAM,KAC7C,qBAAqB,KAAK,OAAO,KAAK,KAAK,GAC3C;AACA;AAAA,QACF;AACA,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAW,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,KAAK,KAAK;AAAA,QACzD;AACA,eAAO;AACP,gBAAQ;AACR,kBAAU,UAAU;AAAA,MACtB,UAAE;AACA,wBAAgB,KAAK;AAAA,MACvB;AAAA,IACF,CAAC;AAAA,EACH;AACA,MAAI,UAAU,UAAU;AACxB,SAAO,MAAM;AACX,YAAQ;AACR;AAAA,EACF;AACF;AAEO,SAAS,YAAe,IAAgB;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM;AACvC,WAAO,iBAAiB,EAAE;AAAA,EAC5B,CAAC;AAED,YAAU,MAAM;AACd,QAAI;AACJ,UAAM,QAAQ,kBAAkB,CAAC,GAAG,MAAM,MAAM,GAAG,MAAM;AACvD;AACA,YAAM,OAAO,iBAAiB,EAAE;AAEhC,UAAI,OAAO,KAAK,UAAU,YAAY;AACpC,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAW,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,QAAQ,MAAM;AAAA,QACjD;AACA,kBAAU,KAAK;AACf;AAAA,MACF;AACA,eAAS,CAAC,SAAS;AACjB,YACE,qBAAqB,KAAK,QAAQ,KAAK,MAAM,KAC7C,qBAAqB,KAAK,OAAO,KAAK,KAAK,GAC3C;AACA,iBAAO;AAAA,QACT;AACA,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAW,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,KAAK,KAAK;AAAA,QACzD;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM;AACX,YAAM;AACN;AAAA,IACF;AAAA,EACF,GAAG,CAAC,GAAG,MAAM,MAAM,CAAC;AAEpB,SAAO,MAAM;AACf;AAEA,SAAS,iBAAoBA,WAAmD;AAC9E,QAAM,SAAS,oBAAI,IAAI;AACvB,QAAM,UAAU,kBAAkB,CAAC,UAAU;AAC3C,WAAO,IAAI,KAAK;AAAA,EAClB,CAAC;AACD,QAAM,QAAQA,UAAS;AACvB,UAAQ;AACR,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,QAAe,UAAqB;AAC7D,QAAM,WAAuB,CAAC;AAC9B,aAAW,SAAS,QAAQ;AAC1B,aAAS,KAAK,MAAM,UAAU,QAAQ,CAAC;AAAA,EACzC;AACA,SAAO,MAAM;AACX,aAAS,QAAQ,CAAC,MAAM,EAAE,CAAC;AAAA,EAC7B;AACF;",
|
|
5
|
-
"names": ["selector"]
|
|
6
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { startTransition, useLayoutEffect, useState } from "react";
|
|
2
|
-
function useAsyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
|
|
3
|
-
const [storeState, setStoreState] = useState(getServerSnapshot);
|
|
4
|
-
if (typeof document !== "undefined") {
|
|
5
|
-
useLayoutEffect(() => {
|
|
6
|
-
return subscribe((next) => {
|
|
7
|
-
startTransition(() => {
|
|
8
|
-
setStoreState(getSnapshot(next));
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
}, [subscribe]);
|
|
12
|
-
}
|
|
13
|
-
return storeState;
|
|
14
|
-
}
|
|
15
|
-
export {
|
|
16
|
-
useAsyncExternalStore
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=useAsyncExternalStore.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/useAsyncExternalStore.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,iBAAiB,iBAAiB,gBAAgB;AAEpD,SAAS,sBACd,WACA,aACA,mBACA;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,iBAAiB;AAE9D,MAAI,OAAO,aAAa,aAAa;AACnC,oBAAgB,MAAM;AACpB,aAAO,UAAU,CAAC,SAAc;AAC9B,wBAAgB,MAAM;AACpB,wBAAc,YAAY,IAAI,CAAC;AAAA,QACjC,CAAC;AAAA,MACH,CAAC;AAAA,IACH,GAAG,CAAC,SAAS,CAAC;AAAA,EAChB;AAEA,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|