@tamagui/use-store 1.50.0 → 1.50.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,SAAS,yBAAyB;AAClC,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,oBAAoB;AAC7B,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,SAAS,yBAAyB;AAClC,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,oBAAoB;AAC7B,cAAc;AACd,cAAc;AAGP,MAAM,MAAyC;AAAA,EACpD,YAAmB,OAAc;AAAd;AAAA,EAAe;AACpC;",
5
5
  "names": []
6
6
  }
@@ -1,16 +1,20 @@
1
1
  import { useMemo } from "react";
2
2
  import { isEqualSubsetShallow } from "./comparators";
3
3
  import { UNWRAP_PROXY } from "./constants";
4
- import { setIsInReaction } from "./useStore";
4
+ import { getStoreInfo, setIsInReaction } from "./useStore";
5
5
  const dispose = (d) => {
6
6
  if (typeof d === "function") {
7
7
  d();
8
8
  }
9
9
  };
10
- function useReaction(store, selector, receiver, equalityFn = isEqualSubsetShallow, memoArgs) {
11
- return useMemo(() => reaction(store, selector, receiver, equalityFn), [memoArgs]);
10
+ function useReaction(store, selector, receiver, props, equalityFn = isEqualSubsetShallow, memoArgs) {
11
+ const storeInfo = getStoreInfo(store, props);
12
+ return useMemo(
13
+ () => reaction(storeInfo, selector, receiver, equalityFn),
14
+ [memoArgs]
15
+ );
12
16
  }
13
- function reaction(store, selector, receiver, equalityFn = isEqualSubsetShallow) {
17
+ function reaction({ store, subscribe }, selector, receiver, equalityFn = isEqualSubsetShallow) {
14
18
  let last = void 0;
15
19
  let innerDispose;
16
20
  function updateReaction() {
@@ -39,7 +43,7 @@ function reaction(store, selector, receiver, equalityFn = isEqualSubsetShallow)
39
43
  setIsInReaction(false);
40
44
  }
41
45
  }
42
- const disposeSubscribe = store.subscribe(updateReaction);
46
+ const disposeSubscribe = subscribe(updateReaction);
43
47
  updateReaction();
44
48
  return () => {
45
49
  disposeSubscribe();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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,MAAM,cAAc,YAAY,SAClE,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,OAAO,OACtC,WAAW;AAAA,YAChB;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;",
4
+ "mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B,SAAS,cAAc,uBAAuB;AAE9C,MAAM,UAAU,CAAC,MAAW;AAC1B,MAAI,OAAO,MAAM,YAAY;AAC3B,MAAE;AAAA,EACJ;AACF;AAEO,SAAS,YACd,OACA,UACA,UAGA,OACA,aAA0C,sBAC1C,UACA;AACA,QAAM,YAAY,aAAa,OAAO,KAAK;AAC3C,SAAO;AAAA,IACL,MAAM,SAAS,WAAW,UAAiB,UAAU,UAAU;AAAA,IAC/D,CAAC,QAAQ;AAAA,EACX;AACF;AAEO,SAAS,SAId,EAAE,OAAO,UAAU,GACnB,UACA,UAGA,aAA0C,sBAC1C;AACA,MAAI,OAAY;AAChB,MAAI;AAEJ,WAAS,iBAAiB;AA5C5B;AA6CI,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,MAAM,cAAc,YAAY,SAClE,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,OAAO,OACtC,WAAW;AAAA,YAChB;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,UAAU,cAAc;AACjD,iBAAe;AAEf,SAAO,MAAM;AACX,qBAAiB;AACjB,YAAQ,YAAY;AAAA,EACtB;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import { isEqualSubsetShallow } from "./comparators";
3
3
  import { UNWRAP_PROXY } from "./constants";
4
- import { setIsInReaction, trackStoresAccess } from "./useStore";
4
+ import { trackStoresAccess } from "./useStore";
5
5
  const logUpdate = process.env.NODE_ENV === "development" ? (fn, stores, last, next) => {
6
6
  const getStoreLogName = (store) => {
7
7
  var _a;
@@ -17,64 +17,30 @@ const logUpdate = process.env.NODE_ENV === "development" ? (fn, stores, last, ne
17
17
  console.log(" next", next);
18
18
  console.groupEnd();
19
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
20
  function useSelector(fn) {
57
21
  const [state, setState] = useState(() => {
58
22
  return runStoreSelector(fn);
59
23
  });
60
24
  useEffect(() => {
61
25
  let dispose;
62
- const unsub = subscribeToStores([...state.stores], () => {
26
+ const unsub = subscribeToStores([...state.storeInfos], () => {
63
27
  dispose == null ? void 0 : dispose();
64
28
  const next = runStoreSelector(fn);
29
+ const nextStoreInfos = [...next.storeInfos];
30
+ const prevStoreInfos = [...state.storeInfos];
65
31
  if (typeof next.value === "function") {
66
32
  if (process.env.NODE_ENV === "development") {
67
- logUpdate(fn, [...next.stores], "(fn)", "(fn)");
33
+ logUpdate(fn, nextStoreInfos, "(fn)", "(fn)");
68
34
  }
69
35
  dispose = next.value;
70
36
  return;
71
37
  }
72
38
  setState((prev) => {
73
- if (isEqualSubsetShallow(prev.stores, next.stores) && isEqualSubsetShallow(prev.value, next.value)) {
39
+ if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {
74
40
  return prev;
75
41
  }
76
42
  if (process.env.NODE_ENV === "development") {
77
- logUpdate(fn, [...next.stores], prev.value, next.value);
43
+ logUpdate(fn, nextStoreInfos, prev.value, next.value);
78
44
  }
79
45
  return next;
80
46
  });
@@ -83,19 +49,19 @@ function useSelector(fn) {
83
49
  unsub();
84
50
  dispose == null ? void 0 : dispose();
85
51
  };
86
- }, [...state.stores]);
52
+ }, [[...state.storeInfos].map((i) => i.uid).join(",")]);
87
53
  return state.value;
88
54
  }
89
- function runStoreSelector(selector2) {
90
- const stores = /* @__PURE__ */ new Set();
91
- const dispose = trackStoresAccess((store) => {
92
- stores.add(store);
55
+ function runStoreSelector(selector) {
56
+ const storeInfos = /* @__PURE__ */ new Set();
57
+ const dispose = trackStoresAccess((storeInfo) => {
58
+ storeInfos.add(storeInfo);
93
59
  });
94
- const value = selector2();
60
+ const value = selector();
95
61
  dispose();
96
62
  return {
97
63
  value,
98
- stores
64
+ storeInfos
99
65
  };
100
66
  }
101
67
  function subscribeToStores(stores, onUpdate) {
@@ -108,7 +74,6 @@ function subscribeToStores(stores, onUpdate) {
108
74
  };
109
75
  }
110
76
  export {
111
- selector,
112
77
  useSelector
113
78
  };
114
79
  //# sourceMappingURL=selector.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/selector.tsx"],
4
- "mappings": "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",
5
- "names": ["selector"]
4
+ "mappings": "AAAA,SAAS,WAAW,gBAAgB;AAEpC,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAIlC,MAAM,YACJ,QAAQ,IAAI,aAAa,gBACrB,CAAC,IAAS,QAAe,MAAW,SAAc;AAChD,QAAM,kBAAkB,CAAC,UAAe;AAZhD;AAaU,UAAM,MAAM,MAAM,YAAY,KAAK;AACnC,WAAO,GAAG,IAAI,YAAY,SAAO,WAAM,UAAN,mBAAa,MAAK,IAAI,MAAM,MAAM,OAAO;AAAA,EAC5E;AACA,QAAM,aAAa,OAAO,IAAI,eAAe,EAAE,KAAK,IAAI;AACxD,QAAM,OAAO,6BAAY,GAAG,QAAQ,iBAAiB,WAAW;AAChE,UAAQ,eAAe,MAAM,gBAAgB;AAC7C,UAAQ,eAAe,SAAS;AAChC,UAAQ,MAAM;AACd,UAAQ,SAAS;AAEjB,UAAQ,IAAI,UAAU,IAAI;AAC1B,UAAQ,SAAS;AACnB,IACA;AA2CC,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,UAAU,GAAG,MAAM;AAC3D;AACA,YAAM,OAAO,iBAAiB,EAAE;AAEhC,YAAM,iBAAiB,CAAC,GAAG,KAAK,UAAU;AAC1C,YAAM,iBAAiB,CAAC,GAAG,MAAM,UAAU;AAG3C,UAAI,OAAO,KAAK,UAAU,YAAY;AACpC,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAW,IAAI,gBAAgB,QAAQ,MAAM;AAAA,QAC/C;AACA,kBAAU,KAAK;AACf;AAAA,MACF;AACA,eAAS,CAAC,SAAS;AACjB,YACE,qBAAqB,gBAAgB,cAAc,KACnD,qBAAqB,KAAK,OAAO,KAAK,KAAK,GAC3C;AACA,iBAAO;AAAA,QACT;AACA,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAW,IAAI,gBAAgB,KAAK,OAAO,KAAK,KAAK;AAAA,QACvD;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AACD,WAAO,MAAM;AACX,YAAM;AACN;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC,GAAG,MAAM,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEtD,SAAO,MAAM;AACf;AAEA,SAAS,iBAAoB,UAG3B;AACA,QAAM,aAAa,oBAAI,IAAe;AACtC,QAAM,UAAU,kBAAkB,CAAC,cAAc;AAC/C,eAAW,IAAI,SAAS;AAAA,EAC1B,CAAC;AACD,QAAM,QAAQ,SAAS;AACvB,UAAQ;AACR,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,QAAqB,UAAqB;AACnE,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": []
6
6
  }
@@ -9,13 +9,7 @@ import {
9
9
  getStoreUid,
10
10
  simpleStr
11
11
  } from "./helpers";
12
- import {
13
- SHOULD_DEBUG,
14
- TRIGGER_UPDATE,
15
- disableTracking,
16
- setDisableStoreTracking
17
- } from "./Store";
18
- import { DebugStores, useCurrentComponent } from "./useStoreDebug";
12
+ import { DebugStores, shouldDebug, useCurrentComponent } from "./useStoreDebug";
19
13
  const idFn = (_) => _;
20
14
  function useStore(StoreKlass, props, options = defaultOptions) {
21
15
  const selectorCb = useCallback(options.selector || idFn, []);
@@ -71,7 +65,12 @@ function trackStoresAccess(cb) {
71
65
  };
72
66
  }
73
67
  function getStore(StoreKlass, props) {
74
- return getOrCreateStoreInfo(StoreKlass, props).store;
68
+ return getStoreInfo(StoreKlass, props).store;
69
+ }
70
+ function getStoreInfo(StoreKlass, props) {
71
+ return getOrCreateStoreInfo(StoreKlass, props, {
72
+ refuseCreation: true
73
+ });
75
74
  }
76
75
  function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
77
76
  var _a;
@@ -79,7 +78,11 @@ function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
79
78
  if (!(options == null ? void 0 : options.avoidCache) && cache.has(uid)) {
80
79
  return cache.get(uid);
81
80
  }
81
+ if (options == null ? void 0 : options.refuseCreation) {
82
+ throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);
83
+ }
82
84
  const storeInstance = new StoreKlass(props);
85
+ storeInstance.props = props;
83
86
  const getters = {};
84
87
  const actions = {};
85
88
  const stateKeys = /* @__PURE__ */ new Set();
@@ -97,31 +100,50 @@ function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
97
100
  }
98
101
  }
99
102
  const keyComparators = storeInstance["_comparators"];
103
+ const listeners = /* @__PURE__ */ new Set();
100
104
  const storeInfo = {
105
+ uid: Math.random(),
101
106
  keyComparators,
102
107
  storeInstance,
103
108
  getters,
104
109
  stateKeys,
105
110
  actions,
106
111
  debug: options == null ? void 0 : options.debug,
112
+ disableTracking: false,
107
113
  gettersState: {
108
114
  getCache: /* @__PURE__ */ new Map(),
109
115
  depsToGetter: /* @__PURE__ */ new Map(),
110
116
  curGetKeys: /* @__PURE__ */ new Set(),
111
117
  isGetting: false
118
+ },
119
+ listeners,
120
+ trackers: /* @__PURE__ */ new Set(),
121
+ version: 0,
122
+ subscribe: (onChanged) => {
123
+ listeners.add(onChanged);
124
+ return () => {
125
+ listeners.delete(onChanged);
126
+ };
127
+ },
128
+ triggerUpdate: () => {
129
+ storeInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;
130
+ for (const cb of listeners) {
131
+ cb();
132
+ }
112
133
  }
113
134
  };
114
- const store = createProxiedStore(storeInfo);
135
+ const store = createProxiedStore(
136
+ // we assign store right after and proxiedStore never accesses it until later on
137
+ storeInfo
138
+ );
115
139
  if (process.env.NODE_ENV === "development") {
116
140
  allStores[uid] = store;
117
141
  }
118
142
  (_a = store.mount) == null ? void 0 : _a.call(store);
119
- const value = {
120
- ...storeInfo,
121
- store
122
- };
123
- cache.set(uid, value);
124
- return value;
143
+ storeInfo.store = store;
144
+ const result = storeInfo;
145
+ cache.set(uid, result);
146
+ return result;
125
147
  }
126
148
  const allStores = {};
127
149
  const emptyObj = {};
@@ -159,21 +181,21 @@ function useStoreFromInfo(info, userSelector, options) {
159
181
  const getSnapshot = useCallback(() => {
160
182
  const curInternal2 = internal.current;
161
183
  const keys = [...!curInternal2.tracked.size ? info.stateKeys : curInternal2.tracked];
162
- const nextKeys = `${store._version}${keys.join("")}${userSelector || ""}`;
184
+ const nextKeys = `${info.version}${keys.join("")}${userSelector || ""}`;
163
185
  const lastKeys = curInternal2.lastKeys;
164
186
  if (nextKeys === curInternal2.lastKeys) {
165
187
  return curInternal2.last;
166
188
  }
167
189
  curInternal2.lastKeys = nextKeys;
168
190
  let snap;
169
- setDisableStoreTracking(store, true);
191
+ info.disableTracking = true;
170
192
  const last = curInternal2.last;
171
193
  if (userSelector) {
172
194
  snap = userSelector(store);
173
195
  } else {
174
196
  snap = selectKeys(store, keys);
175
197
  }
176
- setDisableStoreTracking(store, false);
198
+ info.disableTracking = false;
177
199
  const isUnchanged = typeof last !== "undefined" && isEqualSubsetShallow(last, snap, {
178
200
  keyComparators: info.keyComparators
179
201
  });
@@ -186,7 +208,7 @@ function useStoreFromInfo(info, userSelector, options) {
186
208
  curInternal2.last = snap;
187
209
  return snap;
188
210
  }, []);
189
- const state = useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
211
+ const state = useSyncExternalStore(info.subscribe, getSnapshot, getSnapshot);
190
212
  if (userSelector) {
191
213
  return state;
192
214
  }
@@ -216,9 +238,8 @@ function createProxiedStore(storeInfo) {
216
238
  const { actions, storeInstance, getters, gettersState } = storeInfo;
217
239
  const { getCache, curGetKeys, depsToGetter } = gettersState;
218
240
  const constr = storeInstance.constructor;
219
- const shouldDebug = storeInfo.debug ?? DebugStores.has(constr);
241
+ const shouldDebug2 = storeInfo.debug ?? DebugStores.has(constr);
220
242
  let didSet = false;
221
- let isInAction = false;
222
243
  const wrappedActions = {};
223
244
  for (const key in actions) {
224
245
  if (key === "subscribe") {
@@ -231,10 +252,9 @@ function createProxiedStore(storeInfo) {
231
252
  if (isGetFn || gettersState.isGetting) {
232
253
  return Reflect.apply(actionFn, proxiedStore, args);
233
254
  }
234
- if (process.env.NODE_ENV === "development" && shouldDebug) {
235
- console.log("(debug) startAction", key, { isInAction });
255
+ if (process.env.NODE_ENV === "development" && shouldDebug2) {
256
+ console.log("(debug) startAction", key);
236
257
  }
237
- isInAction = true;
238
258
  res = Reflect.apply(actionFn, proxiedStore, args);
239
259
  if (res instanceof Promise) {
240
260
  return res.then(finishAction);
@@ -257,7 +277,7 @@ function createProxiedStore(storeInfo) {
257
277
  const ogAction = wrappedActions[key];
258
278
  wrappedActions[key] = new Proxy(ogAction, {
259
279
  apply(target, thisArg, args) {
260
- const isDebugging = shouldDebug || storeInfo.debug;
280
+ const isDebugging = shouldDebug2 || storeInfo.debug;
261
281
  const shouldLog = process.env.LOG_LEVEL !== "0" && (isDebugging || configureOpts.logLevel !== "error");
262
282
  if (!shouldLog) {
263
283
  return Reflect.apply(target, thisArg, args);
@@ -341,13 +361,11 @@ function createProxiedStore(storeInfo) {
341
361
  }
342
362
  }
343
363
  const finishAction = (val) => {
344
- var _a;
345
- if (process.env.NODE_ENV === "development" && shouldDebug) {
364
+ if (process.env.NODE_ENV === "development" && shouldDebug2) {
346
365
  console.log("(debug) finishAction", { didSet });
347
366
  }
348
- isInAction = false;
349
367
  if (didSet) {
350
- (_a = storeInstance[TRIGGER_UPDATE]) == null ? void 0 : _a.call(storeInstance);
368
+ storeInfo.triggerUpdate();
351
369
  didSet = false;
352
370
  }
353
371
  return val;
@@ -368,11 +386,11 @@ function createProxiedStore(storeInfo) {
368
386
  if (key === UNWRAP_STORE_INFO) {
369
387
  return storeInfo;
370
388
  }
371
- const trackingDisabled = disableTracking.get(storeInstance);
389
+ const trackingDisabled = storeInfo.disableTracking;
372
390
  if (!trackingDisabled) {
373
391
  if (storeAccessTrackers.size && !storeAccessTrackers.has(storeInstance)) {
374
392
  for (const t of storeAccessTrackers) {
375
- t(storeInstance);
393
+ t(storeInfo);
376
394
  }
377
395
  }
378
396
  }
@@ -416,22 +434,19 @@ function createProxiedStore(storeInfo) {
416
434
  if (typeof key === "string") {
417
435
  clearGetterCache(key);
418
436
  }
419
- if (shouldDebug) {
437
+ if (shouldDebug2) {
420
438
  setters.add({ key, value });
421
- if (storeInstance[SHOULD_DEBUG]()) {
439
+ if (getShouldDebug(storeInfo)) {
422
440
  console.log("(debug) SET", res, key, value);
423
441
  }
424
442
  }
425
- if (process.env.NODE_ENV === "development" && shouldDebug) {
426
- console.log("SET...", { key, value, isInAction });
443
+ if (process.env.NODE_ENV === "development" && shouldDebug2) {
444
+ console.log("SET...", { key, value });
427
445
  }
428
- if (isInAction) {
429
- didSet = true;
430
- } else {
446
+ if (!isTriggering) {
431
447
  isTriggering = true;
432
- queueMicrotask(() => {
433
- var _a;
434
- (_a = storeInstance[TRIGGER_UPDATE]) == null ? void 0 : _a.call(storeInstance);
448
+ waitForEventLoop(() => {
449
+ storeInfo.triggerUpdate();
435
450
  isTriggering = false;
436
451
  });
437
452
  }
@@ -440,12 +455,12 @@ function createProxiedStore(storeInfo) {
440
455
  }
441
456
  });
442
457
  function clearGetterCache(setKey) {
443
- const getters2 = depsToGetter.get(setKey);
458
+ const parentGetters = depsToGetter.get(setKey);
444
459
  getCache.delete(setKey);
445
- if (!getters2) {
460
+ if (!parentGetters) {
446
461
  return;
447
462
  }
448
- for (const gk of getters2) {
463
+ for (const gk of parentGetters) {
449
464
  getCache.delete(gk);
450
465
  if (depsToGetter.has(gk)) {
451
466
  clearGetterCache(gk);
@@ -454,6 +469,7 @@ function createProxiedStore(storeInfo) {
454
469
  }
455
470
  return proxiedStore;
456
471
  }
472
+ const waitForEventLoop = process.env.NODE_ENV === "test" ? (cb) => cb() : queueMicrotask;
457
473
  let counter = 0;
458
474
  const passThroughKeys = {
459
475
  subscribe: true,
@@ -463,12 +479,20 @@ const passThroughKeys = {
463
479
  _listeners: true,
464
480
  _enableTracking: true
465
481
  };
482
+ function getShouldDebug(storeInfo) {
483
+ const info = { storeInstance: storeInfo.store };
484
+ const trackers = storeInfo.trackers;
485
+ return [...trackers].some(
486
+ (tracker) => tracker.component && shouldDebug(tracker.component, info)
487
+ );
488
+ }
466
489
  export {
467
490
  allStores,
468
491
  createStore,
469
492
  createUseStore,
470
493
  createUseStoreSelector,
471
494
  getStore,
495
+ getStoreInfo,
472
496
  setIsInReaction,
473
497
  trackStoresAccess,
474
498
  useGlobalStore,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useStore.tsx"],
4
- "mappings": "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",
5
- "names": ["curInternal", "hashCode", "strColor", "key", "name", "getters"]
4
+ "mappings": "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",
5
+ "names": ["curInternal", "shouldDebug", "hashCode", "strColor", "key", "name"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/use-store",
3
- "version": "1.50.0",
3
+ "version": "1.50.2",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -27,7 +27,7 @@
27
27
  }
28
28
  },
29
29
  "devDependencies": {
30
- "@tamagui/build": "1.50.0",
30
+ "@tamagui/build": "1.50.2",
31
31
  "@testing-library/react": "^13.4.0",
32
32
  "react": "^18.2.0",
33
33
  "vitest": "^0.26.3"
package/src/index.ts CHANGED
@@ -3,7 +3,11 @@ export { configureUseStore } from './configureUseStore'
3
3
  export * from './interfaces'
4
4
  export * from './selector'
5
5
  export * from './reaction'
6
- export * from './Store'
7
6
  export { UNWRAP_PROXY } from './constants'
8
7
  export * from './comparators'
9
8
  export * from './decorators'
9
+
10
+ // to extend for prop types
11
+ export class Store<Props extends Record<string, any>> {
12
+ constructor(public props: Props) {}
13
+ }
@@ -1,4 +1,4 @@
1
- import { Store } from './Store'
1
+ import { StoreTracker } from './useStore'
2
2
 
3
3
  export type Selector<A = unknown, B = unknown> = (x: A) => B
4
4
 
@@ -9,7 +9,13 @@ export type UseStoreOptions<Store = any, SelectorRes = any> = {
9
9
  once?: boolean
10
10
  }
11
11
 
12
+ export interface Store<Props = Record<string, any> | null | undefined> {
13
+ new (...args: any[]): any
14
+ props: Props
15
+ }
16
+
12
17
  export type StoreInfo<A = Store> = {
18
+ uid: number
13
19
  keyComparators?: {
14
20
  [key: string]: (a: any, b: any) => boolean
15
21
  }
@@ -26,6 +32,12 @@ export type StoreInfo<A = Store> = {
26
32
  curGetKeys: Set<string>
27
33
  isGetting: boolean
28
34
  }
35
+ listeners: Set<Function>
36
+ trackers: Set<StoreTracker>
37
+ version: number
38
+ subscribe: (onChanged: () => void) => () => void
39
+ triggerUpdate: Function
40
+ disableTracking: boolean
29
41
  }
30
42
 
31
43
  export type UseStoreConfig = {
package/src/reaction.tsx CHANGED
@@ -2,8 +2,8 @@ import { useMemo } from 'react'
2
2
 
3
3
  import { isEqualSubsetShallow } from './comparators'
4
4
  import { UNWRAP_PROXY } from './constants'
5
- import { Store } from './Store'
6
- import { setIsInReaction } from './useStore'
5
+ import { StoreInfo } from './interfaces'
6
+ import { getStoreInfo, setIsInReaction } from './useStore'
7
7
 
8
8
  const dispose = (d: any) => {
9
9
  if (typeof d === 'function') {
@@ -11,26 +11,28 @@ const dispose = (d: any) => {
11
11
  }
12
12
  }
13
13
 
14
- export function useReaction<
15
- StoreInstance extends Store<any>,
16
- Selector extends (a: StoreInstance) => any
17
- >(
14
+ export function useReaction<StoreInstance, Selector extends (a: StoreInstance) => any>(
18
15
  store: StoreInstance,
19
16
  selector: Selector,
20
17
  receiver: Selector extends (a: StoreInstance) => infer Derived
21
18
  ? (a: Derived) => any
22
19
  : unknown,
20
+ props?: Record<string, any>,
23
21
  equalityFn: (a: any, b: any) => boolean = isEqualSubsetShallow,
24
22
  memoArgs?: any[]
25
23
  ) {
26
- return useMemo(() => reaction(store, selector, receiver, equalityFn), [memoArgs])
24
+ const storeInfo = getStoreInfo(store, props)
25
+ return useMemo(
26
+ () => reaction(storeInfo, selector as any, receiver, equalityFn),
27
+ [memoArgs]
28
+ )
27
29
  }
28
30
 
29
31
  export function reaction<
30
- StoreInstance extends Store<any>,
32
+ StoreInstance extends StoreInfo,
31
33
  Selector extends (a: StoreInstance) => any
32
34
  >(
33
- store: StoreInstance,
35
+ { store, subscribe }: StoreInstance,
34
36
  selector: Selector,
35
37
  receiver: Selector extends (a: StoreInstance) => infer Derived
36
38
  ? (a: Derived) => any
@@ -69,7 +71,7 @@ export function reaction<
69
71
  }
70
72
  }
71
73
 
72
- const disposeSubscribe = store.subscribe(updateReaction)
74
+ const disposeSubscribe = subscribe(updateReaction)
73
75
  updateReaction()
74
76
 
75
77
  return () => {