@effect-rx/rx-react 0.31.10 → 0.31.11
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 +119 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/index.d.ts +41 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/index.js +112 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +172 -0
package/dist/cjs/index.js
CHANGED
@@ -3,9 +3,12 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.RxRef = exports.Rx = exports.Result = exports.RegistryProvider = exports.RegistryContext = exports.Registry = void 0;
|
6
|
+
exports.component = exports.action = exports.RxRef = exports.Rx = exports.Result = exports.RegistryProvider = exports.RegistryContext = exports.Registry = exports.ReactiveRef = exports.Reactive = void 0;
|
7
7
|
exports.scheduleTask = scheduleTask;
|
8
8
|
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;
|
9
|
+
var Reactive = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Reactive"));
|
10
|
+
var _Reactive = Reactive;
|
11
|
+
exports.Reactive = Reactive;
|
9
12
|
var Registry = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Registry"));
|
10
13
|
var _Registry = Registry;
|
11
14
|
exports.Registry = Registry;
|
@@ -16,11 +19,18 @@ var Rx = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/r
|
|
16
19
|
var _Rx = Rx;
|
17
20
|
exports.Rx = Rx;
|
18
21
|
var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
|
22
|
+
var Context = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Context"));
|
23
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
|
24
|
+
var FiberSet = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/FiberSet"));
|
25
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
19
26
|
var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
|
27
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
20
28
|
var React = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
21
29
|
var Scheduler = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("scheduler"));
|
22
30
|
var _RxRef = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/RxRef"));
|
23
31
|
exports.RxRef = _RxRef;
|
32
|
+
var _ReactiveRef = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/ReactiveRef"));
|
33
|
+
exports.ReactiveRef = _ReactiveRef;
|
24
34
|
function _getRequireWildcardCache(e) {
|
25
35
|
if ("function" != typeof WeakMap) return null;
|
26
36
|
var r = new WeakMap(),
|
@@ -49,6 +59,17 @@ function _interopRequireWildcard(e, r) {
|
|
49
59
|
/**
|
50
60
|
* @since 1.0.0
|
51
61
|
*/
|
62
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
63
|
+
|
64
|
+
/**
|
65
|
+
* @since 1.0.0
|
66
|
+
* @category modules
|
67
|
+
*/
|
68
|
+
|
69
|
+
/**
|
70
|
+
* @since 1.0.0
|
71
|
+
* @category modules
|
72
|
+
*/
|
52
73
|
|
53
74
|
/**
|
54
75
|
* @since 1.0.0
|
@@ -323,4 +344,101 @@ const useRxRefProp = (ref, prop) => React.useMemo(() => ref.prop(prop), [ref, pr
|
|
323
344
|
exports.useRxRefProp = useRxRefProp;
|
324
345
|
const useRxRefPropValue = (ref, prop) => useRxRef(useRxRefProp(ref, prop));
|
325
346
|
exports.useRxRefPropValue = useRxRefPropValue;
|
347
|
+
const depsAreEqual = (a, b) => {
|
348
|
+
if (a.length !== b.length) {
|
349
|
+
return false;
|
350
|
+
}
|
351
|
+
for (let i = 0; i < a.length; i++) {
|
352
|
+
if (!Object.is(a[i], b[i])) {
|
353
|
+
return false;
|
354
|
+
}
|
355
|
+
}
|
356
|
+
return true;
|
357
|
+
};
|
358
|
+
const makeReactiveComponent = options => {
|
359
|
+
function ReactiveComponent(props) {
|
360
|
+
const [result, setResult] = React.useState(Result.initial(true));
|
361
|
+
const ref = React.useRef(undefined);
|
362
|
+
const deps = options.deps(props);
|
363
|
+
if (ref.current === undefined || !depsAreEqual(ref.current.previousDeps, deps)) {
|
364
|
+
if (ref.current) {
|
365
|
+
ref.current.cancel();
|
366
|
+
if (ref.current.timeout !== undefined) {
|
367
|
+
clearTimeout(ref.current.timeout);
|
368
|
+
ref.current.timeout = undefined;
|
369
|
+
}
|
370
|
+
}
|
371
|
+
const layer = props.context ? Layer.provideMerge(options.layer, Layer.succeedContext(props.context)) : options.layer;
|
372
|
+
const subscribable = Reactive.toSubscribable(layer)(options.build(props, Reactive.emit));
|
373
|
+
const cancel = subscribable.subscribe(setResult);
|
374
|
+
ref.current = {
|
375
|
+
subscribable,
|
376
|
+
cancel,
|
377
|
+
previousDeps: deps,
|
378
|
+
timeout: undefined
|
379
|
+
};
|
380
|
+
}
|
381
|
+
React.useEffect(() => {
|
382
|
+
if (ref.current.timeout !== undefined) {
|
383
|
+
clearTimeout(ref.current.timeout);
|
384
|
+
ref.current.timeout = undefined;
|
385
|
+
}
|
386
|
+
return () => {
|
387
|
+
ref.current.timeout = setTimeout(ref.current.cancel, 100);
|
388
|
+
};
|
389
|
+
}, [ref.current]);
|
390
|
+
if (result._tag === "Initial") {
|
391
|
+
return options.onInitial(props);
|
392
|
+
} else if (result._tag === "Failure") {
|
393
|
+
throw Cause.squash(result.cause);
|
394
|
+
}
|
395
|
+
return result.value;
|
396
|
+
}
|
397
|
+
ReactiveComponent.displayName = options.name;
|
398
|
+
ReactiveComponent.provide = function provide(layer) {
|
399
|
+
return makeReactiveComponent({
|
400
|
+
...options,
|
401
|
+
layer: options.layer === Layer.empty ? layer : Layer.provideMerge(options.layer, layer)
|
402
|
+
});
|
403
|
+
};
|
404
|
+
let renderCache;
|
405
|
+
ReactiveComponent.render = Effect.contextWith(context => {
|
406
|
+
const reactive = Context.unsafeGet(context, Reactive.Reactive);
|
407
|
+
if (renderCache?.has(reactive.parentScope)) {
|
408
|
+
return renderCache.get(reactive.parentScope);
|
409
|
+
}
|
410
|
+
function Wrapped(props) {
|
411
|
+
return React.createElement(ReactiveComponent, {
|
412
|
+
...props,
|
413
|
+
context
|
414
|
+
});
|
415
|
+
}
|
416
|
+
Wrapped.displayName = `${options.name}.render`;
|
417
|
+
if (renderCache === undefined) {
|
418
|
+
renderCache = new WeakMap();
|
419
|
+
}
|
420
|
+
renderCache.set(reactive.parentScope, Wrapped);
|
421
|
+
return Wrapped;
|
422
|
+
});
|
423
|
+
return ReactiveComponent;
|
424
|
+
};
|
425
|
+
const defaultDeps = props => Object.values(props);
|
426
|
+
/**
|
427
|
+
* @since 1.0.0
|
428
|
+
* @category Reactive
|
429
|
+
*/
|
430
|
+
const component = (name, build, options) => makeReactiveComponent({
|
431
|
+
name,
|
432
|
+
build,
|
433
|
+
layer: Layer.empty,
|
434
|
+
onInitial: options?.onInitial ?? _Function.constNull,
|
435
|
+
deps: options?.deps ?? defaultDeps
|
436
|
+
});
|
437
|
+
/**
|
438
|
+
* @since 1.0.0
|
439
|
+
* @category Reactive
|
440
|
+
*/
|
441
|
+
exports.component = component;
|
442
|
+
const action = f => Effect.map(FiberSet.makeRuntimePromise(), runPromise => (...args) => runPromise(f(...args)));
|
443
|
+
exports.action = action;
|
326
444
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Registry","_interopRequireWildcard","require","_Registry","exports","Result","_Result","Rx","_Rx","Cause","_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","defaultIdleTTL","RegistryProvider","options","registry","useMemo","useEffect","dispose","createElement","Provider","value","children","storeRegistry","globalValue","makeStore","rx","stores","undefined","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","add","ensureNode","setValue","useRxValue","rxB","map","mountRx","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","waiting","_tag","fns","Array","from","clear","exit","toExit","forEach","resolve","immediate","Promise","useRxRefresh","refresh","useRx","rxPromiseMap","suspendOnWaiting","Map","rxToPromise","promise","setTimeout","delete","rxResultOrSuspend","useRxSuspense","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["Reactive","_interopRequireWildcard","require","_Reactive","exports","Registry","_Registry","Result","_Result","Rx","_Rx","Cause","Context","Effect","FiberSet","_Function","_GlobalValue","Layer","React","Scheduler","_RxRef","RxRef","_ReactiveRef","ReactiveRef","_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","defaultIdleTTL","RegistryProvider","options","registry","useMemo","useEffect","dispose","createElement","Provider","value","children","storeRegistry","globalValue","makeStore","rx","stores","undefined","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","add","ensureNode","setValue","useRxValue","rxB","map","mountRx","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","waiting","_tag","fns","Array","from","clear","exit","toExit","forEach","resolve","immediate","Promise","useRxRefresh","refresh","useRx","rxPromiseMap","suspendOnWaiting","Map","rxToPromise","promise","setTimeout","delete","rxResultOrSuspend","useRxSuspense","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue","depsAreEqual","b","length","is","makeReactiveComponent","ReactiveComponent","props","setResult","initial","useRef","deps","current","previousDeps","cancel","timeout","clearTimeout","layer","context","provideMerge","succeedContext","subscribable","toSubscribable","build","emit","onInitial","displayName","name","provide","empty","renderCache","render","contextWith","reactive","unsafeGet","parentScope","Wrapped","defaultDeps","values","component","constNull","action","makeRuntimePromise","runPromise","args"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/index.d.ts
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
/**
|
2
2
|
* @since 1.0.0
|
3
3
|
*/
|
4
|
+
import * as Reactive from "@effect-rx/rx/Reactive";
|
4
5
|
import * as Registry from "@effect-rx/rx/Registry";
|
5
6
|
import * as Result from "@effect-rx/rx/Result";
|
6
7
|
import * as Rx from "@effect-rx/rx/Rx";
|
7
8
|
import type * as RxRef from "@effect-rx/rx/RxRef";
|
9
|
+
import * as Context from "effect/Context";
|
10
|
+
import * as Effect from "effect/Effect";
|
8
11
|
import type * as Exit from "effect/Exit";
|
12
|
+
import * as Layer from "effect/Layer";
|
13
|
+
import type { Scope } from "effect/Scope";
|
9
14
|
import * as React from "react";
|
10
15
|
/**
|
11
16
|
* @since 1.0.0
|
@@ -27,6 +32,16 @@ export * as Rx from "@effect-rx/rx/Rx";
|
|
27
32
|
* @category modules
|
28
33
|
*/
|
29
34
|
export * as RxRef from "@effect-rx/rx/RxRef";
|
35
|
+
/**
|
36
|
+
* @since 1.0.0
|
37
|
+
* @category modules
|
38
|
+
*/
|
39
|
+
export * as Reactive from "@effect-rx/rx/Reactive";
|
40
|
+
/**
|
41
|
+
* @since 1.0.0
|
42
|
+
* @category modules
|
43
|
+
*/
|
44
|
+
export * as ReactiveRef from "@effect-rx/rx/ReactiveRef";
|
30
45
|
/**
|
31
46
|
* @since 1.0.0
|
32
47
|
* @category context
|
@@ -122,4 +137,30 @@ export declare const useRxRefProp: <A, K extends keyof A>(ref: RxRef.RxRef<A>, p
|
|
122
137
|
* @category hooks
|
123
138
|
*/
|
124
139
|
export declare const useRxRefPropValue: <A, K extends keyof A>(ref: RxRef.RxRef<A>, prop: K) => A[K];
|
140
|
+
/**
|
141
|
+
* @since 1.0.0
|
142
|
+
* @category Reactive
|
143
|
+
*/
|
144
|
+
export interface ReactiveComponent<Props extends Record<string, any>, R = never> {
|
145
|
+
(props: Props & [R] extends [never] ? {
|
146
|
+
readonly context?: Context.Context<never> | undefined;
|
147
|
+
} : {
|
148
|
+
readonly context: Context.Context<R>;
|
149
|
+
}): React.ReactNode;
|
150
|
+
provide<AL, EL, RL>(layer: Layer.Layer<AL, EL, RL>): ReactiveComponent<Props, Exclude<R, AL> | RL>;
|
151
|
+
render: Effect.Effect<(props: Props) => React.ReactNode, never, R | Reactive.Reactive>;
|
152
|
+
}
|
153
|
+
/**
|
154
|
+
* @since 1.0.0
|
155
|
+
* @category Reactive
|
156
|
+
*/
|
157
|
+
export declare const component: <E, R, Props extends Record<string, any> = {}>(name: string, build: (props: Props, emit: (_: React.ReactNode) => Effect.Effect<void, never, Reactive.Reactive>) => Effect.Effect<React.ReactNode, E, R>, options?: {
|
158
|
+
readonly onInitial?: (props: Props) => React.ReactNode;
|
159
|
+
readonly deps?: (props: Props) => ReadonlyArray<any>;
|
160
|
+
}) => ReactiveComponent<Props, Exclude<R, Reactive.Reactive | Scope>>;
|
161
|
+
/**
|
162
|
+
* @since 1.0.0
|
163
|
+
* @category Reactive
|
164
|
+
*/
|
165
|
+
export declare const action: <Args extends ReadonlyArray<any>, A, E, R>(f: (...args: Args) => Effect.Effect<A, E, R>) => Effect.Effect<(...args: Args) => Promise<A>, never, R | Scope>;
|
125
166
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dts/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
/**
|
2
2
|
* @since 1.0.0
|
3
3
|
*/
|
4
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
5
|
+
import * as Reactive from "@effect-rx/rx/Reactive";
|
4
6
|
import * as Registry from "@effect-rx/rx/Registry";
|
5
7
|
import * as Result from "@effect-rx/rx/Result";
|
6
8
|
import * as Rx from "@effect-rx/rx/Rx";
|
7
9
|
import * as Cause from "effect/Cause";
|
10
|
+
import * as Context from "effect/Context";
|
11
|
+
import * as Effect from "effect/Effect";
|
12
|
+
import * as FiberSet from "effect/FiberSet";
|
13
|
+
import { constNull } from "effect/Function";
|
8
14
|
import { globalValue } from "effect/GlobalValue";
|
15
|
+
import * as Layer from "effect/Layer";
|
9
16
|
import * as React from "react";
|
10
17
|
import * as Scheduler from "scheduler";
|
11
18
|
/**
|
@@ -28,6 +35,16 @@ export * as Rx from "@effect-rx/rx/Rx";
|
|
28
35
|
* @category modules
|
29
36
|
*/
|
30
37
|
export * as RxRef from "@effect-rx/rx/RxRef";
|
38
|
+
/**
|
39
|
+
* @since 1.0.0
|
40
|
+
* @category modules
|
41
|
+
*/
|
42
|
+
export * as Reactive from "@effect-rx/rx/Reactive";
|
43
|
+
/**
|
44
|
+
* @since 1.0.0
|
45
|
+
* @category modules
|
46
|
+
*/
|
47
|
+
export * as ReactiveRef from "@effect-rx/rx/ReactiveRef";
|
31
48
|
/**
|
32
49
|
* @since 1.0.0
|
33
50
|
* @category context
|
@@ -267,4 +284,99 @@ export const useRxRefProp = (ref, prop) => React.useMemo(() => ref.prop(prop), [
|
|
267
284
|
* @category hooks
|
268
285
|
*/
|
269
286
|
export const useRxRefPropValue = (ref, prop) => useRxRef(useRxRefProp(ref, prop));
|
287
|
+
const depsAreEqual = (a, b) => {
|
288
|
+
if (a.length !== b.length) {
|
289
|
+
return false;
|
290
|
+
}
|
291
|
+
for (let i = 0; i < a.length; i++) {
|
292
|
+
if (!Object.is(a[i], b[i])) {
|
293
|
+
return false;
|
294
|
+
}
|
295
|
+
}
|
296
|
+
return true;
|
297
|
+
};
|
298
|
+
const makeReactiveComponent = options => {
|
299
|
+
function ReactiveComponent(props) {
|
300
|
+
const [result, setResult] = React.useState(Result.initial(true));
|
301
|
+
const ref = React.useRef(undefined);
|
302
|
+
const deps = options.deps(props);
|
303
|
+
if (ref.current === undefined || !depsAreEqual(ref.current.previousDeps, deps)) {
|
304
|
+
if (ref.current) {
|
305
|
+
ref.current.cancel();
|
306
|
+
if (ref.current.timeout !== undefined) {
|
307
|
+
clearTimeout(ref.current.timeout);
|
308
|
+
ref.current.timeout = undefined;
|
309
|
+
}
|
310
|
+
}
|
311
|
+
const layer = props.context ? Layer.provideMerge(options.layer, Layer.succeedContext(props.context)) : options.layer;
|
312
|
+
const subscribable = Reactive.toSubscribable(layer)(options.build(props, Reactive.emit));
|
313
|
+
const cancel = subscribable.subscribe(setResult);
|
314
|
+
ref.current = {
|
315
|
+
subscribable,
|
316
|
+
cancel,
|
317
|
+
previousDeps: deps,
|
318
|
+
timeout: undefined
|
319
|
+
};
|
320
|
+
}
|
321
|
+
React.useEffect(() => {
|
322
|
+
if (ref.current.timeout !== undefined) {
|
323
|
+
clearTimeout(ref.current.timeout);
|
324
|
+
ref.current.timeout = undefined;
|
325
|
+
}
|
326
|
+
return () => {
|
327
|
+
ref.current.timeout = setTimeout(ref.current.cancel, 100);
|
328
|
+
};
|
329
|
+
}, [ref.current]);
|
330
|
+
if (result._tag === "Initial") {
|
331
|
+
return options.onInitial(props);
|
332
|
+
} else if (result._tag === "Failure") {
|
333
|
+
throw Cause.squash(result.cause);
|
334
|
+
}
|
335
|
+
return result.value;
|
336
|
+
}
|
337
|
+
ReactiveComponent.displayName = options.name;
|
338
|
+
ReactiveComponent.provide = function provide(layer) {
|
339
|
+
return makeReactiveComponent({
|
340
|
+
...options,
|
341
|
+
layer: options.layer === Layer.empty ? layer : Layer.provideMerge(options.layer, layer)
|
342
|
+
});
|
343
|
+
};
|
344
|
+
let renderCache;
|
345
|
+
ReactiveComponent.render = Effect.contextWith(context => {
|
346
|
+
const reactive = Context.unsafeGet(context, Reactive.Reactive);
|
347
|
+
if (renderCache?.has(reactive.parentScope)) {
|
348
|
+
return renderCache.get(reactive.parentScope);
|
349
|
+
}
|
350
|
+
function Wrapped(props) {
|
351
|
+
return React.createElement(ReactiveComponent, {
|
352
|
+
...props,
|
353
|
+
context
|
354
|
+
});
|
355
|
+
}
|
356
|
+
Wrapped.displayName = `${options.name}.render`;
|
357
|
+
if (renderCache === undefined) {
|
358
|
+
renderCache = new WeakMap();
|
359
|
+
}
|
360
|
+
renderCache.set(reactive.parentScope, Wrapped);
|
361
|
+
return Wrapped;
|
362
|
+
});
|
363
|
+
return ReactiveComponent;
|
364
|
+
};
|
365
|
+
const defaultDeps = props => Object.values(props);
|
366
|
+
/**
|
367
|
+
* @since 1.0.0
|
368
|
+
* @category Reactive
|
369
|
+
*/
|
370
|
+
export const component = (name, build, options) => makeReactiveComponent({
|
371
|
+
name,
|
372
|
+
build,
|
373
|
+
layer: Layer.empty,
|
374
|
+
onInitial: options?.onInitial ?? constNull,
|
375
|
+
deps: options?.deps ?? defaultDeps
|
376
|
+
});
|
377
|
+
/**
|
378
|
+
* @since 1.0.0
|
379
|
+
* @category Reactive
|
380
|
+
*/
|
381
|
+
export const action = f => Effect.map(FiberSet.makeRuntimePromise(), runPromise => (...args) => runPromise(f(...args)));
|
270
382
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Registry","Result","Rx","Cause","globalValue","React","Scheduler","RxRef","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","defaultIdleTTL","RegistryProvider","options","registry","useMemo","useEffect","dispose","createElement","Provider","value","children","storeRegistry","WeakMap","makeStore","rx","stores","get","undefined","set","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","has","add","ensureNode","setValue","useRxValue","rxB","map","mountRx","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","waiting","_tag","fns","Array","from","clear","exit","toExit","forEach","resolve","immediate","Promise","useRxRefresh","refresh","useRx","rxPromiseMap","suspendOnWaiting","Map","default","rxToPromise","promise","setTimeout","delete","rxResultOrSuspend","useRxSuspense","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["Reactive","Registry","Result","Rx","Cause","Context","Effect","FiberSet","constNull","globalValue","Layer","React","Scheduler","RxRef","ReactiveRef","scheduleTask","f","unstable_scheduleCallback","unstable_LowPriority","RegistryContext","createContext","make","defaultIdleTTL","RegistryProvider","options","registry","useMemo","useEffect","dispose","createElement","Provider","value","children","storeRegistry","WeakMap","makeStore","rx","stores","get","undefined","set","store","newStore","subscribe","snapshot","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","has","add","ensureNode","setValue","useRxValue","rxB","map","mountRx","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","resolves","Set","result","waiting","_tag","fns","Array","from","clear","exit","toExit","forEach","resolve","immediate","Promise","useRxRefresh","refresh","useRx","rxPromiseMap","suspendOnWaiting","Map","default","rxToPromise","promise","setTimeout","delete","rxResultOrSuspend","useRxSuspense","useRxSuspenseSuccess","squash","cause","useRxSubscribe","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue","depsAreEqual","a","b","length","i","Object","is","makeReactiveComponent","ReactiveComponent","props","setResult","initial","useRef","deps","current","previousDeps","cancel","timeout","clearTimeout","layer","context","provideMerge","succeedContext","subscribable","toSubscribable","build","emit","onInitial","displayName","name","provide","empty","renderCache","render","contextWith","reactive","unsafeGet","parentScope","Wrapped","defaultDeps","values","component","action","makeRuntimePromise","runPromise","args"],"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.31.
|
3
|
+
"version": "0.31.11",
|
4
4
|
"description": "Reactive toolkit for Effect",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -11,10 +11,10 @@
|
|
11
11
|
"author": "Effect contributors",
|
12
12
|
"homepage": "https://github.com/effect-ts/rx",
|
13
13
|
"dependencies": {
|
14
|
-
"@effect-rx/rx": "^0.34.
|
14
|
+
"@effect-rx/rx": "^0.34.10"
|
15
15
|
},
|
16
16
|
"peerDependencies": {
|
17
|
-
"effect": "^3.
|
17
|
+
"effect": "^3.14.0",
|
18
18
|
"react": ">=18 <20",
|
19
19
|
"scheduler": "*"
|
20
20
|
},
|
package/src/index.ts
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
/**
|
2
2
|
* @since 1.0.0
|
3
3
|
*/
|
4
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
5
|
+
import * as Reactive from "@effect-rx/rx/Reactive"
|
4
6
|
import * as Registry from "@effect-rx/rx/Registry"
|
5
7
|
import * as Result from "@effect-rx/rx/Result"
|
6
8
|
import * as Rx from "@effect-rx/rx/Rx"
|
7
9
|
import type * as RxRef from "@effect-rx/rx/RxRef"
|
8
10
|
import * as Cause from "effect/Cause"
|
11
|
+
import * as Context from "effect/Context"
|
12
|
+
import * as Effect from "effect/Effect"
|
9
13
|
import type * as Exit from "effect/Exit"
|
14
|
+
import * as FiberSet from "effect/FiberSet"
|
15
|
+
import { constNull } from "effect/Function"
|
10
16
|
import { globalValue } from "effect/GlobalValue"
|
17
|
+
import * as Layer from "effect/Layer"
|
18
|
+
import type { Scope } from "effect/Scope"
|
11
19
|
import * as React from "react"
|
12
20
|
import * as Scheduler from "scheduler"
|
13
21
|
|
@@ -31,6 +39,16 @@ export * as Rx from "@effect-rx/rx/Rx"
|
|
31
39
|
* @category modules
|
32
40
|
*/
|
33
41
|
export * as RxRef from "@effect-rx/rx/RxRef"
|
42
|
+
/**
|
43
|
+
* @since 1.0.0
|
44
|
+
* @category modules
|
45
|
+
*/
|
46
|
+
export * as Reactive from "@effect-rx/rx/Reactive"
|
47
|
+
/**
|
48
|
+
* @since 1.0.0
|
49
|
+
* @category modules
|
50
|
+
*/
|
51
|
+
export * as ReactiveRef from "@effect-rx/rx/ReactiveRef"
|
34
52
|
|
35
53
|
/**
|
36
54
|
* @since 1.0.0
|
@@ -349,3 +367,157 @@ export const useRxRefProp = <A, K extends keyof A>(ref: RxRef.RxRef<A>, prop: K)
|
|
349
367
|
*/
|
350
368
|
export const useRxRefPropValue = <A, K extends keyof A>(ref: RxRef.RxRef<A>, prop: K): A[K] =>
|
351
369
|
useRxRef(useRxRefProp(ref, prop))
|
370
|
+
|
371
|
+
/**
|
372
|
+
* @since 1.0.0
|
373
|
+
* @category Reactive
|
374
|
+
*/
|
375
|
+
export interface ReactiveComponent<Props extends Record<string, any>, R = never> {
|
376
|
+
(
|
377
|
+
props: Props & [R] extends [never] ? {
|
378
|
+
readonly context?: Context.Context<never> | undefined
|
379
|
+
} :
|
380
|
+
{ readonly context: Context.Context<R> }
|
381
|
+
): React.ReactNode
|
382
|
+
|
383
|
+
provide<AL, EL, RL>(layer: Layer.Layer<AL, EL, RL>): ReactiveComponent<Props, Exclude<R, AL> | RL>
|
384
|
+
|
385
|
+
render: Effect.Effect<(props: Props) => React.ReactNode, never, R | Reactive.Reactive>
|
386
|
+
}
|
387
|
+
|
388
|
+
const depsAreEqual = (a: ReadonlyArray<any>, b: ReadonlyArray<any>) => {
|
389
|
+
if (a.length !== b.length) {
|
390
|
+
return false
|
391
|
+
}
|
392
|
+
for (let i = 0; i < a.length; i++) {
|
393
|
+
if (!Object.is(a[i], b[i])) {
|
394
|
+
return false
|
395
|
+
}
|
396
|
+
}
|
397
|
+
return true
|
398
|
+
}
|
399
|
+
|
400
|
+
const makeReactiveComponent = <Props extends Record<string, any>, E, R>(options: {
|
401
|
+
readonly name: string
|
402
|
+
readonly build: (
|
403
|
+
props: Props,
|
404
|
+
emit: (_: React.ReactNode) => Effect.Effect<void, never, Reactive.Reactive>
|
405
|
+
) => Effect.Effect<React.ReactNode, E, R>
|
406
|
+
readonly layer: Layer.Layer<never>
|
407
|
+
readonly onInitial: (props: Props) => React.ReactNode
|
408
|
+
readonly deps: (props: Props) => ReadonlyArray<any>
|
409
|
+
}): ReactiveComponent<Props, R> => {
|
410
|
+
function ReactiveComponent(props: Props & { readonly context?: Context.Context<R> }) {
|
411
|
+
const [result, setResult] = React.useState<Result.Result<React.ReactNode, E>>(Result.initial(true))
|
412
|
+
|
413
|
+
const ref = React.useRef<{
|
414
|
+
readonly subscribable: Reactive.Subscribable<React.ReactNode, E>
|
415
|
+
previousDeps: ReadonlyArray<any>
|
416
|
+
cancel: () => void
|
417
|
+
timeout: number | undefined
|
418
|
+
}>(undefined as any)
|
419
|
+
|
420
|
+
const deps = options.deps(props)
|
421
|
+
|
422
|
+
if (ref.current === undefined || !depsAreEqual(ref.current.previousDeps, deps)) {
|
423
|
+
if (ref.current) {
|
424
|
+
ref.current.cancel()
|
425
|
+
if (ref.current.timeout !== undefined) {
|
426
|
+
clearTimeout(ref.current.timeout)
|
427
|
+
ref.current.timeout = undefined
|
428
|
+
}
|
429
|
+
}
|
430
|
+
|
431
|
+
const layer = props.context
|
432
|
+
? Layer.provideMerge(options.layer, Layer.succeedContext(props.context))
|
433
|
+
: options.layer
|
434
|
+
const subscribable = Reactive.toSubscribable(layer)(
|
435
|
+
options.build(props, Reactive.emit) as Effect.Effect<React.ReactNode, E, Reactive.Reactive>
|
436
|
+
)
|
437
|
+
const cancel = subscribable.subscribe(setResult)
|
438
|
+
ref.current = {
|
439
|
+
subscribable,
|
440
|
+
cancel,
|
441
|
+
previousDeps: deps,
|
442
|
+
timeout: undefined
|
443
|
+
}
|
444
|
+
}
|
445
|
+
|
446
|
+
React.useEffect(() => {
|
447
|
+
if (ref.current.timeout !== undefined) {
|
448
|
+
clearTimeout(ref.current.timeout)
|
449
|
+
ref.current.timeout = undefined
|
450
|
+
}
|
451
|
+
return () => {
|
452
|
+
ref.current.timeout = setTimeout(ref.current.cancel, 100)
|
453
|
+
}
|
454
|
+
}, [ref.current])
|
455
|
+
if (result._tag === "Initial") {
|
456
|
+
return options.onInitial(props)
|
457
|
+
} else if (result._tag === "Failure") {
|
458
|
+
throw Cause.squash(result.cause)
|
459
|
+
}
|
460
|
+
return result.value
|
461
|
+
}
|
462
|
+
ReactiveComponent.displayName = options.name
|
463
|
+
ReactiveComponent.provide = function provide(layer: Layer.Layer<any, any, any>) {
|
464
|
+
return makeReactiveComponent({
|
465
|
+
...options,
|
466
|
+
layer: options.layer === Layer.empty ? layer : Layer.provideMerge(options.layer, layer) as any
|
467
|
+
})
|
468
|
+
}
|
469
|
+
let renderCache: WeakMap<Scope, (props: Props) => React.ReactNode> | undefined
|
470
|
+
ReactiveComponent.render = Effect.contextWith((context: Context.Context<any>) => {
|
471
|
+
const reactive = Context.unsafeGet(context, Reactive.Reactive)
|
472
|
+
if (renderCache?.has(reactive.parentScope)) {
|
473
|
+
return renderCache.get(reactive.parentScope)!
|
474
|
+
}
|
475
|
+
function Wrapped(props: Props) {
|
476
|
+
return React.createElement(ReactiveComponent, { ...props, context })
|
477
|
+
}
|
478
|
+
Wrapped.displayName = `${options.name}.render`
|
479
|
+
if (renderCache === undefined) {
|
480
|
+
renderCache = new WeakMap()
|
481
|
+
}
|
482
|
+
renderCache.set(reactive.parentScope, Wrapped)
|
483
|
+
return Wrapped
|
484
|
+
})
|
485
|
+
return ReactiveComponent as any
|
486
|
+
}
|
487
|
+
|
488
|
+
const defaultDeps = (props: Record<string, any>) => Object.values(props)
|
489
|
+
|
490
|
+
/**
|
491
|
+
* @since 1.0.0
|
492
|
+
* @category Reactive
|
493
|
+
*/
|
494
|
+
export const component = <E, R, Props extends Record<string, any> = {}>(
|
495
|
+
name: string,
|
496
|
+
build: (
|
497
|
+
props: Props,
|
498
|
+
emit: (_: React.ReactNode) => Effect.Effect<void, never, Reactive.Reactive>
|
499
|
+
) => Effect.Effect<React.ReactNode, E, R>,
|
500
|
+
options?: {
|
501
|
+
readonly onInitial?: (props: Props) => React.ReactNode
|
502
|
+
readonly deps?: (props: Props) => ReadonlyArray<any>
|
503
|
+
}
|
504
|
+
): ReactiveComponent<Props, Exclude<R, Reactive.Reactive | Scope>> =>
|
505
|
+
makeReactiveComponent({
|
506
|
+
name,
|
507
|
+
build,
|
508
|
+
layer: Layer.empty,
|
509
|
+
onInitial: options?.onInitial ?? constNull,
|
510
|
+
deps: options?.deps ?? defaultDeps
|
511
|
+
}) as any
|
512
|
+
|
513
|
+
/**
|
514
|
+
* @since 1.0.0
|
515
|
+
* @category Reactive
|
516
|
+
*/
|
517
|
+
export const action = <Args extends ReadonlyArray<any>, A, E, R>(
|
518
|
+
f: (...args: Args) => Effect.Effect<A, E, R>
|
519
|
+
): Effect.Effect<(...args: Args) => Promise<A>, never, R | Scope> =>
|
520
|
+
Effect.map(
|
521
|
+
FiberSet.makeRuntimePromise<R, A, E>(),
|
522
|
+
(runPromise) => (...args) => runPromise(f(...args))
|
523
|
+
)
|