@effect-rx/rx-react 0.40.1 → 0.40.3
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/Hooks.js +6 -14
- package/dist/cjs/Hooks.js.map +1 -1
- package/dist/cjs/RegistryContext.js +23 -13
- package/dist/cjs/RegistryContext.js.map +1 -1
- package/dist/dts/Hooks.d.ts +4 -2
- package/dist/dts/Hooks.d.ts.map +1 -1
- package/dist/dts/RegistryContext.d.ts.map +1 -1
- package/dist/esm/Hooks.js +6 -14
- package/dist/esm/Hooks.js.map +1 -1
- package/dist/esm/RegistryContext.js +23 -13
- package/dist/esm/RegistryContext.js.map +1 -1
- package/package.json +1 -1
- package/src/Hooks.ts +14 -17
- package/src/RegistryContext.ts +26 -16
package/dist/cjs/Hooks.js
CHANGED
|
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
value: true
|
|
10
10
|
});
|
|
11
11
|
exports.useRxValue = exports.useRxSuspenseSuccess = exports.useRxSuspense = exports.useRxSubscribe = exports.useRxSetPromise = exports.useRxSet = exports.useRxRefresh = exports.useRxRefPropValue = exports.useRxRefProp = exports.useRxRef = exports.useRxMount = exports.useRxInitialValues = exports.useRx = void 0;
|
|
12
|
-
var
|
|
12
|
+
var Registry = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Registry"));
|
|
13
13
|
var Rx = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Rx"));
|
|
14
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
14
15
|
var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
|
|
15
16
|
var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
|
|
16
17
|
var React = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
|
@@ -132,20 +133,11 @@ const useRxSet = rx => {
|
|
|
132
133
|
exports.useRxSet = useRxSet;
|
|
133
134
|
const useRxSetPromise = rx => {
|
|
134
135
|
const registry = React.useContext(_RegistryContext.RegistryContext);
|
|
135
|
-
|
|
136
|
-
React.
|
|
137
|
-
if (result.waiting || result._tag === "Initial") return;
|
|
138
|
-
const fns = Array.from(resolves);
|
|
139
|
-
resolves.clear();
|
|
140
|
-
const exit = Result.toExit(result);
|
|
141
|
-
fns.forEach(resolve => resolve(exit));
|
|
142
|
-
}, {
|
|
143
|
-
immediate: true
|
|
144
|
-
}), [registry, rx, resolves]);
|
|
145
|
-
return React.useCallback(value => new Promise(resolve => {
|
|
146
|
-
resolves.add(resolve);
|
|
136
|
+
mountRx(registry, rx);
|
|
137
|
+
return React.useCallback((value, options) => {
|
|
147
138
|
registry.set(rx, value);
|
|
148
|
-
|
|
139
|
+
return _effect.Effect.runPromiseExit(Registry.getResult(registry, rx), options);
|
|
140
|
+
}, [registry, rx]);
|
|
149
141
|
};
|
|
150
142
|
/**
|
|
151
143
|
* @since 1.0.0
|
package/dist/cjs/Hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hooks.js","names":["Object","defineProperty","exports","value","useRxValue","useRxSuspenseSuccess","useRxSuspense","useRxSubscribe","useRxSetPromise","useRxSet","useRxRefresh","useRxRefPropValue","useRxRefProp","useRxRef","useRxMount","useRxInitialValues","useRx","
|
|
1
|
+
{"version":3,"file":"Hooks.js","names":["Object","defineProperty","exports","value","useRxValue","useRxSuspenseSuccess","useRxSuspense","useRxSubscribe","useRxSetPromise","useRxSet","useRxRefresh","useRxRefPropValue","useRxRefProp","useRxRef","useRxMount","useRxInitialValues","useRx","Registry","_interopRequireWildcard","require","Rx","_effect","Cause","_GlobalValue","React","_RegistryContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","storeRegistry","globalValue","makeStore","registry","rx","stores","undefined","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","initialValuesSet","initialValues","useContext","RegistryContext","WeakSet","add","ensureNode","setValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","options","Effect","runPromiseExit","getResult","refresh","rxPromiseMap","suspendOnWaiting","Map","rxToPromise","promise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","squash","cause","immediate","ref","useState","prop"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -53,20 +53,30 @@ const RegistryContext = exports.RegistryContext = /*#__PURE__*/React.createConte
|
|
|
53
53
|
* @category context
|
|
54
54
|
*/
|
|
55
55
|
const RegistryProvider = options => {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
const ref = React.useRef(null);
|
|
57
|
+
if (ref.current === null) {
|
|
58
|
+
ref.current = {
|
|
59
|
+
registry: Registry.make({
|
|
60
|
+
scheduleTask: options.scheduleTask ?? scheduleTask,
|
|
61
|
+
initialValues: options.initialValues,
|
|
62
|
+
timeoutResolution: options.timeoutResolution,
|
|
63
|
+
defaultIdleTTL: options.defaultIdleTTL
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
React.useEffect(() => {
|
|
68
|
+
if (ref.current?.timeout !== undefined) {
|
|
69
|
+
clearTimeout(ref.current.timeout);
|
|
70
|
+
}
|
|
71
|
+
return () => {
|
|
72
|
+
setTimeout(() => {
|
|
73
|
+
ref.current?.registry.dispose();
|
|
74
|
+
ref.current = null;
|
|
75
|
+
}, 500);
|
|
76
|
+
};
|
|
77
|
+
}, [ref]);
|
|
64
78
|
return React.createElement(RegistryContext.Provider, {
|
|
65
|
-
value:
|
|
66
|
-
scheduleTask,
|
|
67
|
-
defaultIdleTTL: 400,
|
|
68
|
-
...options
|
|
69
|
-
})
|
|
79
|
+
value: ref.current.registry
|
|
70
80
|
}, options?.children);
|
|
71
81
|
};
|
|
72
82
|
exports.RegistryProvider = RegistryProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryContext.js","names":["Object","defineProperty","exports","value","RegistryProvider","RegistryContext","scheduleTask","Registry","_interopRequireWildcard","require","React","Scheduler","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","unstable_scheduleCallback","unstable_LowPriority","createContext","make","defaultIdleTTL","options","registry","
|
|
1
|
+
{"version":3,"file":"RegistryContext.js","names":["Object","defineProperty","exports","value","RegistryProvider","RegistryContext","scheduleTask","Registry","_interopRequireWildcard","require","React","Scheduler","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","unstable_scheduleCallback","unstable_LowPriority","createContext","make","defaultIdleTTL","options","ref","useRef","current","registry","initialValues","timeoutResolution","useEffect","timeout","undefined","clearTimeout","setTimeout","dispose","createElement","Provider","children"],"sources":["../../src/RegistryContext.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/Hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as Result from "@effect-rx/rx/Result";
|
|
1
|
+
import type * as Result from "@effect-rx/rx/Result";
|
|
2
2
|
import * as Rx from "@effect-rx/rx/Rx";
|
|
3
3
|
import type * as RxRef from "@effect-rx/rx/RxRef";
|
|
4
4
|
import type * as Exit from "effect/Exit";
|
|
@@ -29,7 +29,9 @@ export declare const useRxSet: <R, W>(rx: Rx.Writable<R, W>) => (_: W | ((_: R)
|
|
|
29
29
|
* @since 1.0.0
|
|
30
30
|
* @category hooks
|
|
31
31
|
*/
|
|
32
|
-
export declare const useRxSetPromise: <E, A, W>(rx: Rx.Writable<Result.Result<A, E>, W>) => (_: W
|
|
32
|
+
export declare const useRxSetPromise: <E, A, W>(rx: Rx.Writable<Result.Result<A, E>, W>) => (_: W, options?: {
|
|
33
|
+
readonly signal?: AbortSignal | undefined;
|
|
34
|
+
} | undefined) => Promise<Exit.Exit<A, E>>;
|
|
33
35
|
/**
|
|
34
36
|
* @since 1.0.0
|
|
35
37
|
* @category hooks
|
package/dist/dts/Hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../src/Hooks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../src/Hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryContext.d.ts","sourceRoot":"","sources":["../../src/RegistryContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAEhD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,kCAGzB,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7C,
|
|
1
|
+
{"version":3,"file":"RegistryContext.d.ts","sourceRoot":"","sources":["../../src/RegistryContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAEhD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,kCAGzB,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7C,2EA2BA,CAAA"}
|
package/dist/esm/Hooks.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
"use client";
|
|
5
5
|
|
|
6
|
-
import * as
|
|
6
|
+
import * as Registry from "@effect-rx/rx/Registry";
|
|
7
7
|
import * as Rx from "@effect-rx/rx/Rx";
|
|
8
|
+
import { Effect } from "effect";
|
|
8
9
|
import * as Cause from "effect/Cause";
|
|
9
10
|
import { globalValue } from "effect/GlobalValue";
|
|
10
11
|
import * as React from "react";
|
|
@@ -102,20 +103,11 @@ export const useRxSet = rx => {
|
|
|
102
103
|
*/
|
|
103
104
|
export const useRxSetPromise = rx => {
|
|
104
105
|
const registry = React.useContext(RegistryContext);
|
|
105
|
-
|
|
106
|
-
React.
|
|
107
|
-
if (result.waiting || result._tag === "Initial") return;
|
|
108
|
-
const fns = Array.from(resolves);
|
|
109
|
-
resolves.clear();
|
|
110
|
-
const exit = Result.toExit(result);
|
|
111
|
-
fns.forEach(resolve => resolve(exit));
|
|
112
|
-
}, {
|
|
113
|
-
immediate: true
|
|
114
|
-
}), [registry, rx, resolves]);
|
|
115
|
-
return React.useCallback(value => new Promise(resolve => {
|
|
116
|
-
resolves.add(resolve);
|
|
106
|
+
mountRx(registry, rx);
|
|
107
|
+
return React.useCallback((value, options) => {
|
|
117
108
|
registry.set(rx, value);
|
|
118
|
-
|
|
109
|
+
return Effect.runPromiseExit(Registry.getResult(registry, rx), options);
|
|
110
|
+
}, [registry, rx]);
|
|
119
111
|
};
|
|
120
112
|
/**
|
|
121
113
|
* @since 1.0.0
|
package/dist/esm/Hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hooks.js","names":["
|
|
1
|
+
{"version":3,"file":"Hooks.js","names":["Registry","Rx","Effect","Cause","globalValue","React","RegistryContext","storeRegistry","WeakMap","makeStore","registry","rx","stores","get","undefined","set","store","newStore","subscribe","f","snapshot","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","value","has","add","ensureNode","setValue","useRxValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","options","runPromiseExit","getResult","useRxRefresh","refresh","useRx","rxPromiseMap","suspendOnWaiting","Map","default","rxToPromise","promise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","useRxSuspense","useRxSuspenseSuccess","squash","cause","useRxSubscribe","immediate","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -26,20 +26,30 @@ export const RegistryContext = /*#__PURE__*/React.createContext(/*#__PURE__*/Reg
|
|
|
26
26
|
* @category context
|
|
27
27
|
*/
|
|
28
28
|
export const RegistryProvider = options => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
const ref = React.useRef(null);
|
|
30
|
+
if (ref.current === null) {
|
|
31
|
+
ref.current = {
|
|
32
|
+
registry: Registry.make({
|
|
33
|
+
scheduleTask: options.scheduleTask ?? scheduleTask,
|
|
34
|
+
initialValues: options.initialValues,
|
|
35
|
+
timeoutResolution: options.timeoutResolution,
|
|
36
|
+
defaultIdleTTL: options.defaultIdleTTL
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
React.useEffect(() => {
|
|
41
|
+
if (ref.current?.timeout !== undefined) {
|
|
42
|
+
clearTimeout(ref.current.timeout);
|
|
43
|
+
}
|
|
44
|
+
return () => {
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
ref.current?.registry.dispose();
|
|
47
|
+
ref.current = null;
|
|
48
|
+
}, 500);
|
|
49
|
+
};
|
|
50
|
+
}, [ref]);
|
|
37
51
|
return React.createElement(RegistryContext.Provider, {
|
|
38
|
-
value:
|
|
39
|
-
scheduleTask,
|
|
40
|
-
defaultIdleTTL: 400,
|
|
41
|
-
...options
|
|
42
|
-
})
|
|
52
|
+
value: ref.current.registry
|
|
43
53
|
}, options?.children);
|
|
44
54
|
};
|
|
45
55
|
//# sourceMappingURL=RegistryContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryContext.js","names":["Registry","React","Scheduler","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","defaultIdleTTL","RegistryProvider","options","registry","
|
|
1
|
+
{"version":3,"file":"RegistryContext.js","names":["Registry","React","Scheduler","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","defaultIdleTTL","RegistryProvider","options","ref","useRef","current","registry","initialValues","timeoutResolution","useEffect","timeout","undefined","clearTimeout","setTimeout","dispose","createElement","Provider","value","children"],"sources":["../../src/RegistryContext.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,YAAY;;AACZ,OAAO,KAAKA,QAAQ,MAAM,wBAAwB;AAElD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAO,KAAKC,SAAS,MAAM,WAAW;AAEtC;;;;AAIA,OAAM,SAAUC,YAAYA,CAACC,CAAa;EACxCF,SAAS,CAACG,yBAAyB,CAACH,SAAS,CAACI,oBAAoB,EAAEF,CAAC,CAAC;AACxE;AAEA;;;;AAIA,OAAO,MAAMG,eAAe,gBAAGN,KAAK,CAACO,aAAa,cAAoBR,QAAQ,CAACS,IAAI,CAAC;EAClFN,YAAY;EACZO,cAAc,EAAE;CACjB,CAAC,CAAC;AAEH;;;;AAIA,OAAO,MAAMC,gBAAgB,GAAIC,OAMhC,IAAI;EACH,MAAMC,GAAG,GAAGZ,KAAK,CAACa,MAAM,CAGrB,IAAI,CAAC;EACR,IAAID,GAAG,CAACE,OAAO,KAAK,IAAI,EAAE;IACxBF,GAAG,CAACE,OAAO,GAAG;MACZC,QAAQ,EAAEhB,QAAQ,CAACS,IAAI,CAAC;QACtBN,YAAY,EAAES,OAAO,CAACT,YAAY,IAAIA,YAAY;QAClDc,aAAa,EAAEL,OAAO,CAACK,aAAa;QACpCC,iBAAiB,EAAEN,OAAO,CAACM,iBAAiB;QAC5CR,cAAc,EAAEE,OAAO,CAACF;OACzB;KACF;EACH;EACAT,KAAK,CAACkB,SAAS,CAAC,MAAK;IACnB,IAAIN,GAAG,CAACE,OAAO,EAAEK,OAAO,KAAKC,SAAS,EAAE;MACtCC,YAAY,CAACT,GAAG,CAACE,OAAO,CAACK,OAAO,CAAC;IACnC;IACA,OAAO,MAAK;MACVG,UAAU,CAAC,MAAK;QACdV,GAAG,CAACE,OAAO,EAAEC,QAAQ,CAACQ,OAAO,EAAE;QAC/BX,GAAG,CAACE,OAAO,GAAG,IAAI;MACpB,CAAC,EAAE,GAAG,CAAC;IACT,CAAC;EACH,CAAC,EAAE,CAACF,GAAG,CAAC,CAAC;EACT,OAAOZ,KAAK,CAACwB,aAAa,CAAClB,eAAe,CAACmB,QAAQ,EAAE;IAAEC,KAAK,EAAEd,GAAG,CAACE,OAAO,CAACC;EAAQ,CAAE,EAAEJ,OAAO,EAAEgB,QAAQ,CAAC;AAC1G,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Hooks.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
"use client"
|
|
5
|
-
import
|
|
6
|
-
import * as Result from "@effect-rx/rx/Result"
|
|
5
|
+
import * as Registry from "@effect-rx/rx/Registry"
|
|
6
|
+
import type * as Result from "@effect-rx/rx/Result"
|
|
7
7
|
import * as Rx from "@effect-rx/rx/Rx"
|
|
8
8
|
import type * as RxRef from "@effect-rx/rx/RxRef"
|
|
9
|
+
import { Effect } from "effect"
|
|
9
10
|
import * as Cause from "effect/Cause"
|
|
10
11
|
import type * as Exit from "effect/Exit"
|
|
11
12
|
import { globalValue } from "effect/GlobalValue"
|
|
@@ -129,22 +130,18 @@ export const useRxSet = <R, W>(rx: Rx.Writable<R, W>): (_: W | ((_: R) => W)) =>
|
|
|
129
130
|
*/
|
|
130
131
|
export const useRxSetPromise = <E, A, W>(
|
|
131
132
|
rx: Rx.Writable<Result.Result<A, E>, W>
|
|
132
|
-
): (
|
|
133
|
+
): (
|
|
134
|
+
_: W,
|
|
135
|
+
options?: {
|
|
136
|
+
readonly signal?: AbortSignal | undefined
|
|
137
|
+
} | undefined
|
|
138
|
+
) => Promise<Exit.Exit<A, E>> => {
|
|
133
139
|
const registry = React.useContext(RegistryContext)
|
|
134
|
-
|
|
135
|
-
React.
|
|
136
|
-
registry.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
resolves.clear()
|
|
140
|
-
const exit = Result.toExit(result)
|
|
141
|
-
fns.forEach((resolve) => resolve(exit as any))
|
|
142
|
-
}, { immediate: true }), [registry, rx, resolves])
|
|
143
|
-
return React.useCallback((value) =>
|
|
144
|
-
new Promise((resolve) => {
|
|
145
|
-
resolves.add(resolve)
|
|
146
|
-
registry.set(rx, value)
|
|
147
|
-
}), [registry, rx, resolves])
|
|
140
|
+
mountRx(registry, rx)
|
|
141
|
+
return React.useCallback((value, options) => {
|
|
142
|
+
registry.set(rx, value)
|
|
143
|
+
return Effect.runPromiseExit(Registry.getResult(registry, rx), options)
|
|
144
|
+
}, [registry, rx])
|
|
148
145
|
}
|
|
149
146
|
|
|
150
147
|
/**
|
package/src/RegistryContext.ts
CHANGED
|
@@ -35,20 +35,30 @@ export const RegistryProvider = (options: {
|
|
|
35
35
|
readonly timeoutResolution?: number | undefined
|
|
36
36
|
readonly defaultIdleTTL?: number | undefined
|
|
37
37
|
}) => {
|
|
38
|
-
const
|
|
39
|
-
Registry.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
38
|
+
const ref = React.useRef<{
|
|
39
|
+
readonly registry: Registry.Registry
|
|
40
|
+
timeout?: number | undefined
|
|
41
|
+
}>(null)
|
|
42
|
+
if (ref.current === null) {
|
|
43
|
+
ref.current = {
|
|
44
|
+
registry: Registry.make({
|
|
45
|
+
scheduleTask: options.scheduleTask ?? scheduleTask,
|
|
46
|
+
initialValues: options.initialValues,
|
|
47
|
+
timeoutResolution: options.timeoutResolution,
|
|
48
|
+
defaultIdleTTL: options.defaultIdleTTL
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
if (ref.current?.timeout !== undefined) {
|
|
54
|
+
clearTimeout(ref.current.timeout)
|
|
55
|
+
}
|
|
56
|
+
return () => {
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
ref.current?.registry.dispose()
|
|
59
|
+
ref.current = null
|
|
60
|
+
}, 500)
|
|
61
|
+
}
|
|
62
|
+
}, [ref])
|
|
63
|
+
return React.createElement(RegistryContext.Provider, { value: ref.current.registry }, options?.children)
|
|
54
64
|
}
|