@effect-rx/rx-react 0.31.9 → 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 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
@@ -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":[]}
@@ -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
@@ -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
@@ -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
@@ -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.9",
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.8"
14
+ "@effect-rx/rx": "^0.34.10"
15
15
  },
16
16
  "peerDependencies": {
17
- "effect": "^3.8.0",
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
+ )