@effect-rx/rx-react 0.28.12 → 0.28.14

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/index.js CHANGED
@@ -79,22 +79,31 @@ function scheduleTask(f) {
79
79
  const RegistryContext = exports.RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make({
80
80
  scheduleTask
81
81
  }));
82
- function identityReducer(prev, next) {
83
- if (Object.is(prev, next)) {
84
- return prev;
82
+ const storeRegistry = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
83
+ function makeStore(registry, rx) {
84
+ let stores = storeRegistry.get(registry);
85
+ if (stores === undefined) {
86
+ stores = new WeakMap();
87
+ storeRegistry.set(registry, stores);
85
88
  }
86
- return next;
89
+ const store = stores.get(rx);
90
+ if (store !== undefined) {
91
+ return store;
92
+ }
93
+ const newStore = {
94
+ subscribe(f) {
95
+ return registry.subscribe(rx, f);
96
+ },
97
+ snapshot() {
98
+ return registry.get(rx);
99
+ }
100
+ };
101
+ stores.set(rx, newStore);
102
+ return newStore;
87
103
  }
88
- function useRxValueRaw(registry, rx) {
89
- const [state, dispatch] = React.useReducer(identityReducer, void 0, function (_) {
90
- return registry.get(rx);
91
- });
92
- React.useEffect(function () {
93
- return registry.subscribe(rx, dispatch, {
94
- immediate: true
95
- });
96
- }, [registry, rx]);
97
- return state;
104
+ function useStore(registry, rx) {
105
+ const store = makeStore(registry, rx);
106
+ return React.useSyncExternalStore(store.subscribe, store.snapshot, store.snapshot);
98
107
  }
99
108
  /**
100
109
  * @since 1.0.0
@@ -104,9 +113,9 @@ const useRxValue = (rx, f) => {
104
113
  const registry = React.useContext(RegistryContext);
105
114
  if (f) {
106
115
  const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
107
- return useRxValueRaw(registry, rxB);
116
+ return useStore(registry, rxB);
108
117
  }
109
- return useRxValueRaw(registry, rx);
118
+ return useStore(registry, rx);
110
119
  };
111
120
  exports.useRxValue = useRxValue;
112
121
  function mountRx(registry, rx) {
@@ -122,34 +131,6 @@ function setRx(registry, rx) {
122
131
  }
123
132
  }, [registry, rx]);
124
133
  }
125
- function setRxPromise(registry, rx) {
126
- const cancelRef = React.useRef(undefined);
127
- if (!cancelRef.current) {
128
- cancelRef.current = new Set();
129
- }
130
- React.useEffect(() => () => {
131
- cancelRef.current.forEach(cancel => cancel());
132
- cancelRef.current.clear();
133
- }, []);
134
- return React.useCallback(value => {
135
- registry.set(rx, value);
136
- return new Promise(resolve => {
137
- const value = registry.get(rx);
138
- if (Result.isSuccess(value) || Result.isFailure(value)) {
139
- resolve(Result.toExit(value));
140
- } else {
141
- const cancel = registry.subscribe(rx, value => {
142
- if (Result.isSuccess(value) || Result.isFailure(value)) {
143
- cancelRef.current.delete(cancel);
144
- cancel();
145
- resolve(Result.toExit(value));
146
- }
147
- });
148
- cancelRef.current.add(cancel);
149
- }
150
- });
151
- }, [registry, rx]);
152
- }
153
134
  /**
154
135
  * @since 1.0.0
155
136
  * @category hooks
@@ -175,7 +156,18 @@ const useRxSet = rx => {
175
156
  exports.useRxSet = useRxSet;
176
157
  const useRxSetPromise = rx => {
177
158
  const registry = React.useContext(RegistryContext);
178
- return setRxPromise(registry, rx);
159
+ const resolves = React.useMemo(() => new Set(), []);
160
+ React.useEffect(() => registry.subscribe(rx, result => {
161
+ if (Result.isSuccess(result) || Result.isFailure(result)) {
162
+ const fns = Array.from(resolves);
163
+ resolves.clear();
164
+ fns.forEach(resolve => resolve(Result.toExit(result)));
165
+ }
166
+ }), [registry, rx, resolves]);
167
+ return React.useCallback(value => new Promise(resolve => {
168
+ resolves.add(resolve);
169
+ registry.set(rx, value);
170
+ }), [registry, rx, resolves]);
179
171
  };
180
172
  /**
181
173
  * @since 1.0.0
@@ -196,7 +188,7 @@ const useRxRefresh = rx => {
196
188
  exports.useRxRefresh = useRxRefresh;
197
189
  const useRx = rx => {
198
190
  const registry = React.useContext(RegistryContext);
199
- return [useRxValueRaw(registry, rx), setRx(registry, rx)];
191
+ return [useStore(registry, rx), setRx(registry, rx)];
200
192
  };
201
193
  exports.useRx = useRx;
202
194
  function makeSuspended(rx) {
@@ -277,7 +269,7 @@ function suspenseRx(registry, rx, suspendOnWaiting) {
277
269
  const useRxSuspense = (rx, options) => {
278
270
  const registry = React.useContext(RegistryContext);
279
271
  const promiseRx = React.useMemo(() => suspenseRx(registry, rx, options?.suspendOnWaiting ?? false), [registry, rx, options?.suspendOnWaiting]);
280
- const result = useRxValueRaw(registry, promiseRx);
272
+ const result = useStore(registry, promiseRx);
281
273
  if (result._tag === "Suspended") {
282
274
  throw result.promise;
283
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Registry","_interopRequireWildcard","require","_Registry","exports","Result","_Result","Rx","_Rx","Cause","_Function","_GlobalValue","React","Scheduler","_RxRef","RxRef","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","identityReducer","prev","next","is","useRxValueRaw","registry","rx","state","dispatch","useReducer","_","useEffect","subscribe","immediate","useRxValue","useContext","rxB","useMemo","map","mountRx","mount","setRx","useCallback","value","setRxPromise","cancelRef","useRef","undefined","current","Set","forEach","cancel","clear","Promise","resolve","isSuccess","isFailure","toExit","delete","add","useRxMount","useRxSet","useRxSetPromise","useRxRefresh","refresh","useRx","makeSuspended","promise","_resolve","_tag","suspenseRxMap","globalValue","suspenseRx","suspendOnWaiting","unmount","timeout","performMount","clearTimeout","resultRx","constVoid","performUnmount","readable","result","waiting","setSelfSync","setTimeout","useRxSuspense","options","promiseRx","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Registry","_interopRequireWildcard","require","_Registry","exports","Result","_Result","Rx","_Rx","Cause","_Function","_GlobalValue","React","Scheduler","_RxRef","RxRef","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","storeRegistry","globalValue","makeStore","registry","rx","stores","undefined","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","useRxValue","useContext","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","value","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","isSuccess","isFailure","fns","Array","from","clear","forEach","resolve","toExit","Promise","add","useRxRefresh","refresh","useRx","makeSuspended","promise","_resolve","_tag","suspenseRxMap","suspenseRx","suspendOnWaiting","unmount","timeout","performMount","clearTimeout","resultRx","constVoid","performUnmount","readable","state","waiting","setSelfSync","setTimeout","immediate","useRxSuspense","options","promiseRx","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -39,22 +39,31 @@ function scheduleTask(f) {
39
39
  export const RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make({
40
40
  scheduleTask
41
41
  }));
42
- function identityReducer(prev, next) {
43
- if (Object.is(prev, next)) {
44
- return prev;
42
+ const storeRegistry = /*#__PURE__*/globalValue("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
43
+ function makeStore(registry, rx) {
44
+ let stores = storeRegistry.get(registry);
45
+ if (stores === undefined) {
46
+ stores = new WeakMap();
47
+ storeRegistry.set(registry, stores);
45
48
  }
46
- return next;
49
+ const store = stores.get(rx);
50
+ if (store !== undefined) {
51
+ return store;
52
+ }
53
+ const newStore = {
54
+ subscribe(f) {
55
+ return registry.subscribe(rx, f);
56
+ },
57
+ snapshot() {
58
+ return registry.get(rx);
59
+ }
60
+ };
61
+ stores.set(rx, newStore);
62
+ return newStore;
47
63
  }
48
- function useRxValueRaw(registry, rx) {
49
- const [state, dispatch] = React.useReducer(identityReducer, void 0, function (_) {
50
- return registry.get(rx);
51
- });
52
- React.useEffect(function () {
53
- return registry.subscribe(rx, dispatch, {
54
- immediate: true
55
- });
56
- }, [registry, rx]);
57
- return state;
64
+ function useStore(registry, rx) {
65
+ const store = makeStore(registry, rx);
66
+ return React.useSyncExternalStore(store.subscribe, store.snapshot, store.snapshot);
58
67
  }
59
68
  /**
60
69
  * @since 1.0.0
@@ -64,9 +73,9 @@ export const useRxValue = (rx, f) => {
64
73
  const registry = React.useContext(RegistryContext);
65
74
  if (f) {
66
75
  const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
67
- return useRxValueRaw(registry, rxB);
76
+ return useStore(registry, rxB);
68
77
  }
69
- return useRxValueRaw(registry, rx);
78
+ return useStore(registry, rx);
70
79
  };
71
80
  function mountRx(registry, rx) {
72
81
  React.useEffect(() => registry.mount(rx), [rx, registry]);
@@ -81,34 +90,6 @@ function setRx(registry, rx) {
81
90
  }
82
91
  }, [registry, rx]);
83
92
  }
84
- function setRxPromise(registry, rx) {
85
- const cancelRef = React.useRef(undefined);
86
- if (!cancelRef.current) {
87
- cancelRef.current = new Set();
88
- }
89
- React.useEffect(() => () => {
90
- cancelRef.current.forEach(cancel => cancel());
91
- cancelRef.current.clear();
92
- }, []);
93
- return React.useCallback(value => {
94
- registry.set(rx, value);
95
- return new Promise(resolve => {
96
- const value = registry.get(rx);
97
- if (Result.isSuccess(value) || Result.isFailure(value)) {
98
- resolve(Result.toExit(value));
99
- } else {
100
- const cancel = registry.subscribe(rx, value => {
101
- if (Result.isSuccess(value) || Result.isFailure(value)) {
102
- cancelRef.current.delete(cancel);
103
- cancel();
104
- resolve(Result.toExit(value));
105
- }
106
- });
107
- cancelRef.current.add(cancel);
108
- }
109
- });
110
- }, [registry, rx]);
111
- }
112
93
  /**
113
94
  * @since 1.0.0
114
95
  * @category hooks
@@ -132,7 +113,18 @@ export const useRxSet = rx => {
132
113
  */
133
114
  export const useRxSetPromise = rx => {
134
115
  const registry = React.useContext(RegistryContext);
135
- return setRxPromise(registry, rx);
116
+ const resolves = React.useMemo(() => new Set(), []);
117
+ React.useEffect(() => registry.subscribe(rx, result => {
118
+ if (Result.isSuccess(result) || Result.isFailure(result)) {
119
+ const fns = Array.from(resolves);
120
+ resolves.clear();
121
+ fns.forEach(resolve => resolve(Result.toExit(result)));
122
+ }
123
+ }), [registry, rx, resolves]);
124
+ return React.useCallback(value => new Promise(resolve => {
125
+ resolves.add(resolve);
126
+ registry.set(rx, value);
127
+ }), [registry, rx, resolves]);
136
128
  };
137
129
  /**
138
130
  * @since 1.0.0
@@ -151,7 +143,7 @@ export const useRxRefresh = rx => {
151
143
  */
152
144
  export const useRx = rx => {
153
145
  const registry = React.useContext(RegistryContext);
154
- return [useRxValueRaw(registry, rx), setRx(registry, rx)];
146
+ return [useStore(registry, rx), setRx(registry, rx)];
155
147
  };
156
148
  function makeSuspended(rx) {
157
149
  let resolve;
@@ -231,7 +223,7 @@ function suspenseRx(registry, rx, suspendOnWaiting) {
231
223
  export const useRxSuspense = (rx, options) => {
232
224
  const registry = React.useContext(RegistryContext);
233
225
  const promiseRx = React.useMemo(() => suspenseRx(registry, rx, options?.suspendOnWaiting ?? false), [registry, rx, options?.suspendOnWaiting]);
234
- const result = useRxValueRaw(registry, promiseRx);
226
+ const result = useStore(registry, promiseRx);
235
227
  if (result._tag === "Suspended") {
236
228
  throw result.promise;
237
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Registry","Result","Rx","Cause","constVoid","globalValue","React","Scheduler","RxRef","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","identityReducer","prev","next","Object","is","useRxValueRaw","registry","rx","state","dispatch","useReducer","_","get","useEffect","subscribe","immediate","useRxValue","useContext","rxB","useMemo","map","mountRx","mount","setRx","useCallback","value","set","setRxPromise","cancelRef","useRef","undefined","current","Set","forEach","cancel","clear","Promise","resolve","isSuccess","isFailure","toExit","delete","add","useRxMount","useRxSet","useRxSetPromise","useRxRefresh","refresh","useRx","makeSuspended","promise","_resolve","_tag","suspenseRxMap","WeakMap","suspenseRx","suspendOnWaiting","has","unmount","timeout","performMount","clearTimeout","resultRx","performUnmount","readable","result","waiting","setSelfSync","setTimeout","useRxSuspense","options","promiseRx","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,wBAAwB;AAClD,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AAEtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAO,KAAKC,SAAS,MAAM,WAAW;AAEtC;;;;AAIA,OAAO,KAAKP,QAAQ,MAAM,wBAAwB;AAClD;;;;AAIA,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C;;;;AAIA,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC;;;;AAIA,OAAO,KAAKM,KAAK,MAAM,qBAAqB;AAE5C,SAASC,YAAYA,CAACC,CAAa;EACjCH,SAAS,CAACI,yBAAyB,CAACJ,SAAS,CAACK,oBAAoB,EAAEF,CAAC,CAAC;AACxE;AAEA;;;;AAIA,OAAO,MAAMG,eAAe,gBAAGP,KAAK,CAACQ,aAAa,eAAoBd,QAAQ,CAACe,IAAI,CAAC;EAClFN;CACD,CAAC,CAAC;AAEH,SAASO,eAAeA,CAAIC,IAAO,EAAEC,IAAO;EAC1C,IAAIC,MAAM,CAACC,EAAE,CAACH,IAAI,EAAEC,IAAI,CAAC,EAAE;IACzB,OAAOD,IAAI;EACb;EACA,OAAOC,IAAI;AACb;AAEA,SAASG,aAAaA,CAAIC,QAA2B,EAAEC,EAAY;EACjE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,KAAK,CAACoB,UAAU,CAACV,eAAkB,EAAE,KAAK,CAAC,EAAE,UAASW,CAAC;IAC/E,OAAOL,QAAQ,CAACM,GAAG,CAACL,EAAE,CAAC;EACzB,CAAC,CAAC;EACFjB,KAAK,CAACuB,SAAS,CAAC;IACd,OAAOP,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAEE,QAAQ,EAAE;MAAEM,SAAS,EAAE;IAAI,CAAE,CAAC;EAC9D,CAAC,EAAE,CAACT,QAAQ,EAAEC,EAAE,CAAC,CAAC;EAClB,OAAOC,KAAK;AACd;AAEA;;;;AAIA,OAAO,MAAMQ,UAAU,GAGnBA,CAAIT,EAAY,EAAEb,CAAe,KAAO;EAC1C,MAAMY,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClD,IAAIH,CAAC,EAAE;IACL,MAAMwB,GAAG,GAAG5B,KAAK,CAAC6B,OAAO,CAAC,MAAMjC,EAAE,CAACkC,GAAG,CAACb,EAAE,EAAEb,CAAC,CAAC,EAAE,CAACa,EAAE,EAAEb,CAAC,CAAC,CAAC;IACvD,OAAOW,aAAa,CAACC,QAAQ,EAAEY,GAAG,CAAC;EACrC;EACA,OAAOb,aAAa,CAACC,QAAQ,EAAEC,EAAE,CAAC;AACpC,CAAC;AAED,SAASc,OAAOA,CAAIf,QAA2B,EAAEC,EAAY;EAC3DjB,KAAK,CAACuB,SAAS,CAAC,MAAMP,QAAQ,CAACgB,KAAK,CAACf,EAAE,CAAC,EAAE,CAACA,EAAE,EAAED,QAAQ,CAAC,CAAC;AAC3D;AAEA,SAASiB,KAAKA,CAAOjB,QAA2B,EAAEC,EAAqB;EACrE,OAAOjB,KAAK,CAACkC,WAAW,CAAEC,KAAK,IAAI;IACjC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MAC/BnB,QAAQ,CAACoB,GAAG,CAACnB,EAAE,EAAGkB,KAAa,CAACnB,QAAQ,CAACM,GAAG,CAACL,EAAE,CAAC,CAAC,CAAC;MAClD;IACF,CAAC,MAAM;MACLD,QAAQ,CAACoB,GAAG,CAACnB,EAAE,EAAEkB,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAACnB,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB;AAEA,SAASoB,YAAYA,CACnBrB,QAA2B,EAC3BC,EAAuC;EAEvC,MAAMqB,SAAS,GAAGtC,KAAK,CAACuC,MAAM,CAAkBC,SAAgB,CAAC;EACjE,IAAI,CAACF,SAAS,CAACG,OAAO,EAAE;IACtBH,SAAS,CAACG,OAAO,GAAG,IAAIC,GAAG,EAAE;EAC/B;EACA1C,KAAK,CAACuB,SAAS,CAAC,MAAM,MAAK;IACzBe,SAAS,CAACG,OAAO,CAACE,OAAO,CAAEC,MAAM,IAAKA,MAAM,EAAE,CAAC;IAC/CN,SAAS,CAACG,OAAO,CAACI,KAAK,EAAE;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO7C,KAAK,CAACkC,WAAW,CAAEC,KAAK,IAAI;IACjCnB,QAAQ,CAACoB,GAAG,CAACnB,EAAE,EAAEkB,KAAK,CAAC;IAEvB,OAAO,IAAIW,OAAO,CAAEC,OAAO,IAAI;MAC7B,MAAMZ,KAAK,GAAGnB,QAAQ,CAACM,GAAG,CAACL,EAAE,CAAC;MAC9B,IAAItB,MAAM,CAACqD,SAAS,CAACb,KAAK,CAAC,IAAIxC,MAAM,CAACsD,SAAS,CAACd,KAAK,CAAC,EAAE;QACtDY,OAAO,CAACpD,MAAM,CAACuD,MAAM,CAACf,KAAK,CAAQ,CAAC;MACtC,CAAC,MAAM;QACL,MAAMS,MAAM,GAAG5B,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAGkB,KAAK,IAAI;UAC9C,IAAIxC,MAAM,CAACqD,SAAS,CAACb,KAAK,CAAC,IAAIxC,MAAM,CAACsD,SAAS,CAACd,KAAK,CAAC,EAAE;YACtDG,SAAS,CAACG,OAAO,CAACU,MAAM,CAACP,MAAM,CAAC;YAChCA,MAAM,EAAE;YACRG,OAAO,CAACpD,MAAM,CAACuD,MAAM,CAACf,KAAK,CAAQ,CAAC;UACtC;QACF,CAAC,CAAC;QACFG,SAAS,CAACG,OAAO,CAACW,GAAG,CAACR,MAAM,CAAC;MAC/B;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC5B,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB;AAEA;;;;AAIA,OAAO,MAAMoC,UAAU,GAAOpC,EAAY,IAAU;EAClD,MAAMD,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClDwB,OAAO,CAACf,QAAQ,EAAEC,EAAE,CAAC;AACvB,CAAC;AAED;;;;AAIA,OAAO,MAAMqC,QAAQ,GAAUrC,EAAqB,IAAoC;EACtF,MAAMD,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClDwB,OAAO,CAACf,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAOgB,KAAK,CAACjB,QAAQ,EAAEC,EAAE,CAAC;AAC5B,CAAC;AAED;;;;AAIA,OAAO,MAAMsC,eAAe,GAC1BtC,EAAuC,IACD;EACtC,MAAMD,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClD,OAAO8B,YAAY,CAACrB,QAAQ,EAAEC,EAAE,CAAC;AACnC,CAAC;AAED;;;;AAIA,OAAO,MAAMuC,YAAY,GAAOvC,EAA6B,IAAgB;EAC3E,MAAMD,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClDwB,OAAO,CAACf,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAOjB,KAAK,CAACkC,WAAW,CAAC,MAAK;IAC5BlB,QAAQ,CAACyC,OAAO,CAACxC,EAAE,CAAC;EACtB,CAAC,EAAE,CAACD,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;AAIA,OAAO,MAAMyC,KAAK,GAChBzC,EAAqB,IAC+C;EACpE,MAAMD,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClD,OAAO,CACLQ,aAAa,CAACC,QAAQ,EAAEC,EAAE,CAAC,EAC3BgB,KAAK,CAACjB,QAAQ,EAAEC,EAAE,CAAC,CACX;AACZ,CAAC;AAUD,SAAS0C,aAAaA,CAAC1C,EAAc;EAKnC,IAAI8B,OAAmB;EACvB,MAAMa,OAAO,GAAG,IAAId,OAAO,CAAQe,QAAQ,IAAI;IAC7Cd,OAAO,GAAGc,QAAQ;EACpB,CAAC,CAAC;EACAD,OAAe,CAAC3C,EAAE,GAAGA,EAAE;EACzB,OAAO;IACL6C,IAAI,EAAE,WAAW;IACjBF,OAAO;IACPb,OAAO,EAAEA;GACV;AACH;AACA,MAAMgB,aAAa,gBAAGhE,WAAW,CAC/B,oCAAoC,EACpC,MAAM,IAAIiE,OAAO,EAA+C,CACjE;AAED,SAASC,UAAUA,CACjBjD,QAA2B,EAC3BC,EAA8B,EAC9BiD,gBAAyB;EAEzB,IAAIH,aAAa,CAACI,GAAG,CAAClD,EAAE,CAAC,EAAE;IACzB,OAAO8C,aAAa,CAACzC,GAAG,CAACL,EAAE,CAAE;EAC/B;EACA,IAAImD,OAAiC;EACrC,IAAIC,OAA2B;EAC/B,SAASC,YAAYA,CAAA;IACnB,IAAID,OAAO,KAAK7B,SAAS,EAAE;MACzB+B,YAAY,CAACF,OAAO,CAAC;IACvB;IACAD,OAAO,GAAGpD,QAAQ,CAACQ,SAAS,CAACgD,QAAQ,EAAE1E,SAAS,CAAC;EACnD;EACA,SAAS2E,cAAcA,CAAA;IACrBJ,OAAO,GAAG7B,SAAS;IACnB,IAAI4B,OAAO,KAAK5B,SAAS,EAAE;MACzB4B,OAAO,EAAE;MACTA,OAAO,GAAG5B,SAAS;IACrB;EACF;EACA,MAAMgC,QAAQ,GAAG5E,EAAE,CAAC8E,QAAQ,CAAuB,UAASpD,GAAG;IAC7D,IAAIJ,KAAK,GAAyByC,aAAa,CAAC1C,EAAE,CAAC;IACnDK,GAAG,CAACE,SAAS,CAACP,EAAE,EAAE,UAAS0D,MAAM;MAC/B,IAAIA,MAAM,CAACb,IAAI,KAAK,SAAS,IAAKI,gBAAgB,IAAIS,MAAM,CAACC,OAAQ,EAAE;QACrE,IAAI1D,KAAK,CAAC4C,IAAI,KAAK,UAAU,EAAE;UAC7B5C,KAAK,GAAGyC,aAAa,CAAC1C,EAAE,CAAC;UACzBK,GAAG,CAACuD,WAAW,CAAC3D,KAAK,CAAC;QACxB;QACA,IAAIkD,OAAO,KAAK5B,SAAS,EAAE;UACzB8B,YAAY,EAAE;QAChB;MACF,CAAC,MAAM;QACL,IAAIF,OAAO,KAAK5B,SAAS,IAAI6B,OAAO,KAAK7B,SAAS,EAAE;UAClD6B,OAAO,GAAGS,UAAU,CAACL,cAAc,EAAE,IAAI,CAAC;QAC5C;QACA,IAAIvD,KAAK,CAAC4C,IAAI,KAAK,UAAU,EAAE;UAC7B5C,KAAK,GAAG;YAAE4C,IAAI,EAAE,UAAU;YAAEa;UAAM,CAAE;UACpCrD,GAAG,CAACuD,WAAW,CAAC3D,KAAK,CAAC;QACxB,CAAC,MAAM;UACL,MAAM6B,OAAO,GAAG7B,KAAK,CAAC6B,OAAO;UAC7B7B,KAAK,GAAG;YAAE4C,IAAI,EAAE,UAAU;YAAEa;UAAM,CAAE;UACpCrD,GAAG,CAACuD,WAAW,CAAC3D,KAAK,CAAC;UACtB6B,OAAO,EAAE;QACX;MACF;IACF,CAAC,EAAE;MAAEtB,SAAS,EAAE;IAAI,CAAE,CAAC;IACvB,OAAOP,KAAK;EACd,CAAC,CAAC;EACF6C,aAAa,CAAC3B,GAAG,CAACnB,EAAE,EAAEuD,QAAQ,CAAC;EAC/B,OAAOA,QAAQ;AACjB;AAEA;;;;AAIA,OAAO,MAAMO,aAAa,GAAGA,CAC3B9D,EAA8B,EAC9B+D,OAAiD,KACF;EAC/C,MAAMhE,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClD,MAAM0E,SAAS,GAAGjF,KAAK,CAAC6B,OAAO,CAAC,MAAMoC,UAAU,CAACjD,QAAQ,EAAEC,EAAE,EAAE+D,OAAO,EAAEd,gBAAgB,IAAI,KAAK,CAAC,EAAE,CAClGlD,QAAQ,EACRC,EAAE,EACF+D,OAAO,EAAEd,gBAAgB,CAC1B,CAAC;EACF,MAAMS,MAAM,GAAG5D,aAAa,CAACC,QAAQ,EAAEiE,SAAS,CAAC;EACjD,IAAIN,MAAM,CAACb,IAAI,KAAK,WAAW,EAAE;IAC/B,MAAMa,MAAM,CAACf,OAAO;EACtB;EACA,OAAOe,MAAM,CAACA,MAAM;AACtB,CAAC;AAED;;;;AAIA,OAAO,MAAMO,oBAAoB,GAAGA,CAClCjE,EAA8B,EAC9B+D,OAAiD,KACzB;EACxB,MAAML,MAAM,GAAGI,aAAa,CAAC9D,EAAE,EAAE+D,OAAO,CAAC;EACzC,IAAIL,MAAM,CAACb,IAAI,KAAK,SAAS,EAAE;IAC7B,MAAMjE,KAAK,CAACsF,MAAM,CAACR,MAAM,CAACS,KAAK,CAAC;EAClC;EACA,OAAOT,MAAM;AACf,CAAC;AAED;;;;AAIA,OAAO,MAAMU,cAAc,GAAGA,CAC5BpE,EAAY,EACZb,CAAiB,EACjB4E,OAA0C,KAClC;EACR,MAAMhE,QAAQ,GAAGhB,KAAK,CAAC2B,UAAU,CAACpB,eAAe,CAAC;EAClDP,KAAK,CAACuB,SAAS,CACb,MAAMP,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAEb,CAAC,EAAE4E,OAAO,CAAC,EACxC,CAAChE,QAAQ,EAAEC,EAAE,EAAEb,CAAC,EAAE4E,OAAO,EAAEvD,SAAS,CAAC,CACtC;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAM6D,QAAQ,GAAOC,GAAyB,IAAO;EAC1D,MAAM,CAACpD,KAAK,EAAEqD,QAAQ,CAAC,GAAGxF,KAAK,CAACyF,QAAQ,CAACF,GAAG,CAACpD,KAAK,CAAC;EACnDnC,KAAK,CAACuB,SAAS,CAAC,MAAMgE,GAAG,CAAC/D,SAAS,CAACgE,QAAQ,CAAC,EAAE,CAACD,GAAG,CAAC,CAAC;EACrD,OAAOpD,KAAK;AACd,CAAC;AAED;;;;AAIA,OAAO,MAAMuD,YAAY,GAAGA,CAAuBH,GAAmB,EAAEI,IAAO,KAAuB;EACpG,OAAO3F,KAAK,CAAC6B,OAAO,CAAC,MAAM0D,GAAG,CAACI,IAAI,CAACA,IAAI,CAAC,EAAE,CAACJ,GAAG,EAAEI,IAAI,CAAC,CAAC;AACzD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Registry","Result","Rx","Cause","constVoid","globalValue","React","Scheduler","RxRef","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","storeRegistry","WeakMap","makeStore","registry","rx","stores","get","undefined","set","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","useRxValue","useContext","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","value","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","isSuccess","isFailure","fns","Array","from","clear","forEach","resolve","toExit","Promise","add","useRxRefresh","refresh","useRx","makeSuspended","promise","_resolve","_tag","suspenseRxMap","suspenseRx","suspendOnWaiting","has","unmount","timeout","performMount","clearTimeout","resultRx","performUnmount","readable","state","waiting","setSelfSync","setTimeout","immediate","useRxSuspense","options","promiseRx","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-rx/rx-react",
3
- "version": "0.28.12",
3
+ "version": "0.28.14",
4
4
  "description": "Reactive toolkit for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/index.ts CHANGED
@@ -45,21 +45,41 @@ export const RegistryContext = React.createContext<Registry.Registry>(Registry.m
45
45
  scheduleTask
46
46
  }))
47
47
 
48
- function identityReducer<A>(prev: A, next: A) {
49
- if (Object.is(prev, next)) {
50
- return prev
48
+ interface RxStore<A> {
49
+ readonly subscribe: (f: () => void) => () => void
50
+ readonly snapshot: () => A
51
+ }
52
+
53
+ const storeRegistry = globalValue(
54
+ "@effect-rx/rx-react/storeRegistry",
55
+ () => new WeakMap<Registry.Registry, WeakMap<Rx.Rx<any>, RxStore<any>>>()
56
+ )
57
+
58
+ function makeStore<A>(registry: Registry.Registry, rx: Rx.Rx<A>): RxStore<A> {
59
+ let stores = storeRegistry.get(registry)
60
+ if (stores === undefined) {
61
+ stores = new WeakMap()
62
+ storeRegistry.set(registry, stores)
63
+ }
64
+ const store = stores.get(rx)
65
+ if (store !== undefined) {
66
+ return store
51
67
  }
52
- return next
68
+ const newStore: RxStore<A> = {
69
+ subscribe(f) {
70
+ return registry.subscribe(rx, f)
71
+ },
72
+ snapshot() {
73
+ return registry.get(rx)
74
+ }
75
+ }
76
+ stores.set(rx, newStore)
77
+ return newStore
53
78
  }
54
79
 
55
- function useRxValueRaw<A>(registry: Registry.Registry, rx: Rx.Rx<A>): A {
56
- const [state, dispatch] = React.useReducer(identityReducer<A>, void 0, function(_) {
57
- return registry.get(rx)
58
- })
59
- React.useEffect(function() {
60
- return registry.subscribe(rx, dispatch, { immediate: true })
61
- }, [registry, rx])
62
- return state
80
+ function useStore<A>(registry: Registry.Registry, rx: Rx.Rx<A>): A {
81
+ const store = makeStore(registry, rx)
82
+ return React.useSyncExternalStore(store.subscribe, store.snapshot, store.snapshot)
63
83
  }
64
84
 
65
85
  /**
@@ -73,9 +93,9 @@ export const useRxValue: {
73
93
  const registry = React.useContext(RegistryContext)
74
94
  if (f) {
75
95
  const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f])
76
- return useRxValueRaw(registry, rxB)
96
+ return useStore(registry, rxB)
77
97
  }
78
- return useRxValueRaw(registry, rx)
98
+ return useStore(registry, rx)
79
99
  }
80
100
 
81
101
  function mountRx<A>(registry: Registry.Registry, rx: Rx.Rx<A>): void {
@@ -93,40 +113,6 @@ function setRx<R, W>(registry: Registry.Registry, rx: Rx.Writable<R, W>): (_: W
93
113
  }, [registry, rx])
94
114
  }
95
115
 
96
- function setRxPromise<E, A, W>(
97
- registry: Registry.Registry,
98
- rx: Rx.Writable<Result.Result<A, E>, W>
99
- ): (_: W) => Promise<Exit.Exit<A, E>> {
100
- const cancelRef = React.useRef<Set<() => void>>(undefined as any)
101
- if (!cancelRef.current) {
102
- cancelRef.current = new Set()
103
- }
104
- React.useEffect(() => () => {
105
- cancelRef.current.forEach((cancel) => cancel())
106
- cancelRef.current.clear()
107
- }, [])
108
-
109
- return React.useCallback((value) => {
110
- registry.set(rx, value)
111
-
112
- return new Promise((resolve) => {
113
- const value = registry.get(rx)
114
- if (Result.isSuccess(value) || Result.isFailure(value)) {
115
- resolve(Result.toExit(value) as any)
116
- } else {
117
- const cancel = registry.subscribe(rx, (value) => {
118
- if (Result.isSuccess(value) || Result.isFailure(value)) {
119
- cancelRef.current.delete(cancel)
120
- cancel()
121
- resolve(Result.toExit(value) as any)
122
- }
123
- })
124
- cancelRef.current.add(cancel)
125
- }
126
- })
127
- }, [registry, rx])
128
- }
129
-
130
116
  /**
131
117
  * @since 1.0.0
132
118
  * @category hooks
@@ -154,7 +140,20 @@ export const useRxSetPromise = <E, A, W>(
154
140
  rx: Rx.Writable<Result.Result<A, E>, W>
155
141
  ): (_: W) => Promise<Exit.Exit<A, E>> => {
156
142
  const registry = React.useContext(RegistryContext)
157
- return setRxPromise(registry, rx)
143
+ const resolves = React.useMemo(() => new Set<(result: Exit.Exit<A, E>) => void>(), [])
144
+ React.useEffect(() =>
145
+ registry.subscribe(rx, (result) => {
146
+ if (Result.isSuccess(result) || Result.isFailure(result)) {
147
+ const fns = Array.from(resolves)
148
+ resolves.clear()
149
+ fns.forEach((resolve) => resolve(Result.toExit(result) as any))
150
+ }
151
+ }), [registry, rx, resolves])
152
+ return React.useCallback((value) =>
153
+ new Promise((resolve) => {
154
+ resolves.add(resolve)
155
+ registry.set(rx, value)
156
+ }), [registry, rx, resolves])
158
157
  }
159
158
 
160
159
  /**
@@ -178,7 +177,7 @@ export const useRx = <R, W>(
178
177
  ): readonly [value: R, setOrUpdate: (_: W | ((_: R) => W)) => void] => {
179
178
  const registry = React.useContext(RegistryContext)
180
179
  return [
181
- useRxValueRaw(registry, rx),
180
+ useStore(registry, rx),
182
181
  setRx(registry, rx)
183
182
  ] as const
184
183
  }
@@ -281,7 +280,7 @@ export const useRxSuspense = <A, E>(
281
280
  rx,
282
281
  options?.suspendOnWaiting
283
282
  ])
284
- const result = useRxValueRaw(registry, promiseRx)
283
+ const result = useStore(registry, promiseRx)
285
284
  if (result._tag === "Suspended") {
286
285
  throw result.promise
287
286
  }