@tamagui/use-store 1.61.2 → 1.62.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/dist/cjs/comparators.js +12 -18
- package/dist/cjs/comparators.js.map +1 -1
- package/dist/cjs/comparators.native.js +40 -0
- package/dist/cjs/comparators.native.js.map +6 -0
- package/dist/cjs/configureUseStore.js +5 -9
- package/dist/cjs/configureUseStore.js.map +1 -1
- package/dist/cjs/configureUseStore.native.js +31 -0
- package/dist/cjs/configureUseStore.native.js.map +6 -0
- package/dist/cjs/constants.js +7 -12
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js +31 -0
- package/dist/cjs/constants.native.js.map +6 -0
- package/dist/cjs/decorators.js +6 -11
- package/dist/cjs/decorators.js.map +1 -1
- package/dist/cjs/decorators.native.js +30 -0
- package/dist/cjs/decorators.native.js.map +6 -0
- package/dist/cjs/helpers.js +13 -29
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/helpers.native.js +66 -0
- package/dist/cjs/helpers.native.js.map +6 -0
- package/dist/cjs/index.js +6 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +46 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/interfaces.js +3 -6
- package/dist/cjs/interfaces.js.map +1 -1
- package/dist/cjs/interfaces.native.js +15 -0
- package/dist/cjs/interfaces.native.js.map +6 -0
- package/dist/cjs/observe.js +35 -92
- package/dist/cjs/observe.js.map +1 -1
- package/dist/cjs/observe.native.js +103 -0
- package/dist/cjs/observe.native.js.map +6 -0
- package/dist/cjs/useStore.js +114 -318
- package/dist/cjs/useStore.js.map +2 -2
- package/dist/cjs/useStore.native.js +350 -0
- package/dist/cjs/useStore.native.js.map +6 -0
- package/dist/cjs/useStoreDebug.js +14 -33
- package/dist/cjs/useStoreDebug.js.map +1 -1
- package/dist/cjs/useStoreDebug.native.js +55 -0
- package/dist/cjs/useStoreDebug.native.js.map +6 -0
- package/dist/esm/comparators.js +7 -9
- package/dist/esm/comparators.js.map +1 -1
- package/dist/esm/constants.js +2 -3
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/decorators.js +1 -2
- package/dist/esm/decorators.js.map +1 -1
- package/dist/esm/helpers.js +7 -18
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/observe.js +29 -79
- package/dist/esm/observe.js.map +1 -1
- package/dist/esm/useStore.js +108 -303
- package/dist/esm/useStore.js.map +2 -2
- package/dist/esm/useStoreDebug.js +7 -20
- package/dist/esm/useStoreDebug.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/decorators.tsx"],
|
|
4
|
-
"mappings": "AAEO,SAAS,QAAQ,YAA0B;AAChD,SAAO,CAAC,QAAa,gBAA6B;AAChD,WAAO,
|
|
4
|
+
"mappings": "AAEO,SAAS,QAAQ,YAA0B;AAChD,SAAO,CAAC,QAAa,gBAA6B;AAChD,WAAO,eAAkB,OAAO,gBAAmB,CAAC,GACpD,OAAO,aAAgB,WAAW,IAAI;AAAA,EACxC;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/helpers.js
CHANGED
|
@@ -2,38 +2,27 @@ import { simpleHash } from "@tamagui/simple-hash";
|
|
|
2
2
|
import { useRef } from "react";
|
|
3
3
|
function getStoreUid(Constructor, props) {
|
|
4
4
|
return simpleHash(
|
|
5
|
-
`${Constructor}${
|
|
5
|
+
`${Constructor}${props ? typeof props == "string" ? props : JSON.stringify(props) : ""}`,
|
|
6
6
|
"strict"
|
|
7
7
|
);
|
|
8
8
|
}
|
|
9
|
-
const UNWRAP_STORE_INFO = Symbol("UNWRAP_STORE_INFO");
|
|
10
|
-
const cache = /* @__PURE__ */ new Map();
|
|
9
|
+
const UNWRAP_STORE_INFO = Symbol("UNWRAP_STORE_INFO"), cache = /* @__PURE__ */ new Map();
|
|
11
10
|
function getStoreDescriptors(storeInstance) {
|
|
12
|
-
const proto = Object.getPrototypeOf(storeInstance)
|
|
13
|
-
|
|
14
|
-
const protoDescriptors = Object.getOwnPropertyDescriptors(proto);
|
|
15
|
-
const descriptors = {
|
|
16
|
-
...protoDescriptors,
|
|
11
|
+
const proto = Object.getPrototypeOf(storeInstance), instanceDescriptors = Object.getOwnPropertyDescriptors(storeInstance), descriptors = {
|
|
12
|
+
...Object.getOwnPropertyDescriptors(proto),
|
|
17
13
|
...instanceDescriptors
|
|
18
14
|
};
|
|
19
|
-
delete descriptors.constructor;
|
|
20
|
-
return descriptors;
|
|
15
|
+
return delete descriptors.constructor, descriptors;
|
|
21
16
|
}
|
|
22
17
|
function get(_, b) {
|
|
23
18
|
return _;
|
|
24
19
|
}
|
|
25
20
|
function useConstant(fn) {
|
|
26
21
|
const ref = useRef();
|
|
27
|
-
|
|
28
|
-
ref.current = { v: fn() };
|
|
29
|
-
}
|
|
30
|
-
return ref.current.v;
|
|
22
|
+
return ref.current || (ref.current = { v: fn() }), ref.current.v;
|
|
31
23
|
}
|
|
32
24
|
function simpleStr(arg) {
|
|
33
|
-
|
|
34
|
-
return typeof arg === "function" ? "fn" : typeof arg === "string" ? `"${arg}"` : !arg ? arg : typeof arg !== "object" ? arg : Array.isArray(arg) ? "[...]" : `{...}`;
|
|
35
|
-
}
|
|
36
|
-
return arg;
|
|
25
|
+
return process.env.NODE_ENV === "development" ? typeof arg == "function" ? "fn" : typeof arg == "string" ? `"${arg}"` : arg && (typeof arg != "object" ? arg : Array.isArray(arg) ? "[...]" : "{...}") : arg;
|
|
37
26
|
}
|
|
38
27
|
function getStoreDebugInfo(store) {
|
|
39
28
|
return store[UNWRAP_STORE_INFO] ?? cache.get(getStoreUid(store.constructor, store.props));
|
package/dist/esm/helpers.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/helpers.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAIhB,SAAS,YAAY,aAAkB,OAA+B;AAC3E,SAAO;AAAA,IACL,GAAG,WAAW,
|
|
4
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAIhB,SAAS,YAAY,aAAkB,OAA+B;AAC3E,SAAO;AAAA,IACL,GAAG,WAAW,GACX,QAAa,OAAO,SAAU,WAAW,QAAQ,KAAK,UAAU,KAAK,IAA7D,EACX;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,oBAAoB,OAAO,mBAAmB,GAC9C,QAAQ,oBAAI,IAAuB;AAEzC,SAAS,oBAAoB,eAAoB;AACtD,QAAM,QAAQ,OAAO,eAAe,aAAa,GAC3C,sBAAsB,OAAO,0BAA0B,aAAa,GAEpE,cAAc;AAAA,IAClB,GAFuB,OAAO,0BAA0B,KAAK;AAAA,IAG7D,GAAG;AAAA,EACL;AAEA,gBAAO,YAAY,aACZ;AACT;AAEO,SAAS,IAAO,GAAM,GAAyD;AACpF,SAAO;AACT;AAIe,SAAR,YAAgC,IAAgB;AACrD,QAAM,MAAM,OAAqB;AACjC,SAAK,IAAI,YACP,IAAI,UAAU,EAAE,GAAG,GAAG,EAAE,IAEnB,IAAI,QAAQ;AACrB;AAEO,SAAS,UAAU,KAAU;AAClC,SAAI,QAAQ,IAAI,aAAa,gBACpB,OAAO,OAAQ,aAClB,OACA,OAAO,OAAQ,WACf,IAAI,GAAG,MACN,QAED,OAAO,OAAQ,WACf,MACA,MAAM,QAAQ,GAAG,IACjB,UACA,WAEC;AACT;AAGO,SAAS,kBAAkB,OAAY;AAC5C,SACE,MAAM,iBAAiB,KAAK,MAAM,IAAI,YAAY,MAAM,aAAa,MAAM,KAAK,CAAC;AAErF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/observe.js
CHANGED
|
@@ -3,126 +3,76 @@ import { isEqualSubsetShallow } from "./comparators";
|
|
|
3
3
|
import { UNWRAP_PROXY } from "./constants";
|
|
4
4
|
import { trackStoresAccess } from "./useStore";
|
|
5
5
|
const logUpdate = process.env.NODE_ENV === "development" ? (fn, stores, last, next) => {
|
|
6
|
-
const getStoreLogName = (store) => {
|
|
7
|
-
|
|
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();
|
|
6
|
+
const getStoreLogName = (store) => `${(store[UNWRAP_PROXY] ?? store).constructor.name}${store.props?.id ? `:${store.props.id}` : ""}`, storeNames = stores.map(getStoreLogName).join(", "), name = `\u{1F311} \u25B6\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;
|
|
7
|
+
console.groupCollapsed(name, "color: tomato;"), console.groupCollapsed("trace >"), console.trace(), console.groupEnd(), console.log(" next", next), console.groupEnd();
|
|
19
8
|
} : null;
|
|
20
9
|
function observe(fn) {
|
|
21
|
-
let prev = getObserverValueAndStoresAccessed(fn);
|
|
22
|
-
let disposeValue = null;
|
|
10
|
+
let prev = getObserverValueAndStoresAccessed(fn), disposeValue = null;
|
|
23
11
|
const subscribe = () => {
|
|
24
12
|
const stores = [...prev.storeInfos];
|
|
25
13
|
return subscribeToStores(stores, () => {
|
|
26
|
-
disposeValue
|
|
14
|
+
disposeValue?.();
|
|
27
15
|
const next = getObserverValueAndStoresAccessed(fn);
|
|
28
|
-
if (typeof next.value
|
|
29
|
-
disposeValue = next.value;
|
|
30
|
-
if (process.env.NODE_ENV === "development") {
|
|
31
|
-
logUpdate(fn, [...next.storeInfos], "(fn)", "(fn)");
|
|
32
|
-
}
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
16
|
+
if (typeof next.value == "function") {
|
|
17
|
+
disposeValue = next.value, process.env.NODE_ENV === "development" && logUpdate(fn, [...next.storeInfos], "(fn)", "(fn)");
|
|
36
18
|
return;
|
|
37
19
|
}
|
|
38
|
-
|
|
39
|
-
logUpdate(fn, [...next.storeInfos], prev.value, next.value);
|
|
40
|
-
}
|
|
41
|
-
prev = next;
|
|
42
|
-
dispose();
|
|
43
|
-
dispose = subscribe();
|
|
20
|
+
isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value) || (process.env.NODE_ENV === "development" && logUpdate(fn, [...next.storeInfos], prev.value, next.value), prev = next, dispose(), dispose = subscribe());
|
|
44
21
|
});
|
|
45
22
|
};
|
|
46
23
|
let dispose = subscribe();
|
|
47
24
|
return {
|
|
48
25
|
dispose: () => {
|
|
49
|
-
dispose();
|
|
50
|
-
disposeValue == null ? void 0 : disposeValue();
|
|
26
|
+
dispose(), disposeValue?.();
|
|
51
27
|
},
|
|
52
28
|
getValue: () => prev.value
|
|
53
29
|
};
|
|
54
30
|
}
|
|
55
31
|
function useObserve(fn) {
|
|
56
|
-
const [state, setState] = useState(() =>
|
|
57
|
-
|
|
58
|
-
});
|
|
59
|
-
useEffect(() => {
|
|
32
|
+
const [state, setState] = useState(() => getObserverValueAndStoresAccessed(fn));
|
|
33
|
+
return useEffect(() => {
|
|
60
34
|
let dispose;
|
|
61
35
|
const unsub = subscribeToStores([...state.storeInfos], () => {
|
|
62
|
-
dispose
|
|
63
|
-
const next = getObserverValueAndStoresAccessed(fn);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (typeof next.value === "function") {
|
|
67
|
-
if (process.env.NODE_ENV === "development") {
|
|
68
|
-
logUpdate(fn, nextStoreInfos, "(fn)", "(fn)");
|
|
69
|
-
}
|
|
70
|
-
dispose = next.value;
|
|
36
|
+
dispose?.();
|
|
37
|
+
const next = getObserverValueAndStoresAccessed(fn), nextStoreInfos = [...next.storeInfos], prevStoreInfos = [...state.storeInfos];
|
|
38
|
+
if (typeof next.value == "function") {
|
|
39
|
+
process.env.NODE_ENV === "development" && logUpdate(fn, nextStoreInfos, "(fn)", "(fn)"), dispose = next.value;
|
|
71
40
|
return;
|
|
72
41
|
}
|
|
73
|
-
setState((prev) =>
|
|
74
|
-
if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
75
|
-
return prev;
|
|
76
|
-
}
|
|
77
|
-
if (process.env.NODE_ENV === "development") {
|
|
78
|
-
logUpdate(fn, nextStoreInfos, prev.value, next.value);
|
|
79
|
-
}
|
|
80
|
-
return next;
|
|
81
|
-
});
|
|
42
|
+
setState((prev) => isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value) ? prev : (process.env.NODE_ENV === "development" && logUpdate(fn, nextStoreInfos, prev.value, next.value), next));
|
|
82
43
|
});
|
|
83
44
|
return () => {
|
|
84
|
-
unsub();
|
|
85
|
-
dispose == null ? void 0 : dispose();
|
|
45
|
+
unsub(), dispose?.();
|
|
86
46
|
};
|
|
87
|
-
}, [[...state.storeInfos].map((i) => i.uid).join(",")]);
|
|
88
|
-
return state.value;
|
|
47
|
+
}, [[...state.storeInfos].map((i) => i.uid).join(",")]), state.value;
|
|
89
48
|
}
|
|
90
49
|
function getObserverValueAndStoresAccessed(selector) {
|
|
91
|
-
const storeInfos = /* @__PURE__ */ new Set()
|
|
92
|
-
const dispose = trackStoresAccess((storeInfo) => {
|
|
50
|
+
const storeInfos = /* @__PURE__ */ new Set(), dispose = trackStoresAccess((storeInfo) => {
|
|
93
51
|
storeInfos.add(storeInfo);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
dispose();
|
|
97
|
-
return {
|
|
52
|
+
}), value = selector();
|
|
53
|
+
return dispose(), {
|
|
98
54
|
value,
|
|
99
55
|
storeInfos
|
|
100
56
|
};
|
|
101
57
|
}
|
|
102
58
|
function subscribeToStores(storeInfos, onUpdate) {
|
|
103
59
|
const disposes = [];
|
|
104
|
-
let isUpdating =
|
|
60
|
+
let isUpdating = !1;
|
|
105
61
|
const onUpdateDebouncedWithoutTracking = () => {
|
|
106
|
-
|
|
107
|
-
return;
|
|
108
|
-
isUpdating = true;
|
|
109
|
-
queueMicrotask(() => {
|
|
62
|
+
isUpdating || (isUpdating = !0, queueMicrotask(() => {
|
|
110
63
|
try {
|
|
111
|
-
for (const storeInfo of storeInfos)
|
|
112
|
-
storeInfo.disableTracking =
|
|
113
|
-
}
|
|
64
|
+
for (const storeInfo of storeInfos)
|
|
65
|
+
storeInfo.disableTracking = !0;
|
|
114
66
|
onUpdate();
|
|
115
67
|
} finally {
|
|
116
|
-
isUpdating =
|
|
117
|
-
for (const storeInfo of storeInfos)
|
|
118
|
-
storeInfo.disableTracking =
|
|
119
|
-
}
|
|
68
|
+
isUpdating = !1;
|
|
69
|
+
for (const storeInfo of storeInfos)
|
|
70
|
+
storeInfo.disableTracking = !1;
|
|
120
71
|
}
|
|
121
|
-
});
|
|
72
|
+
}));
|
|
122
73
|
};
|
|
123
|
-
for (const storeInfo of storeInfos)
|
|
74
|
+
for (const storeInfo of storeInfos)
|
|
124
75
|
disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));
|
|
125
|
-
}
|
|
126
76
|
return () => {
|
|
127
77
|
disposes.forEach((x) => x());
|
|
128
78
|
};
|
package/dist/esm/observe.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/observe.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,WAAW,gBAAgB;AAEpC,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAElC,MAAM,YACJ,QAAQ,IAAI,aAAa,gBACrB,CAAC,IAAS,QAAe,MAAW,SAAc;AAChD,QAAM,kBAAkB,CAAC,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|