From 882ec9591c4a0a5cd6dc29c5766633f283504c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 5 May 2025 03:09:17 +0200 Subject: [PATCH] Fix --- packages/example/src/VQueryErrorHandler.tsx | 14 --------- packages/reffuse/src/ReffuseNamespace.ts | 35 +++++++++++---------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/packages/example/src/VQueryErrorHandler.tsx b/packages/example/src/VQueryErrorHandler.tsx index d492f4f..0b9fa57 100644 --- a/packages/example/src/VQueryErrorHandler.tsx +++ b/packages/example/src/VQueryErrorHandler.tsx @@ -18,20 +18,6 @@ export function VQueryErrorHandler() { ), []) ) - const error2 = R.useSubscribeStream( - R.useMemo(() => AppQueryErrorHandler.pipe( - Effect.flatMap() - - Effect.map(handler => handler.errors.pipe( - Stream.changes, - Stream.tap(Console.error), - Stream.tap(() => Effect.sync(() => setOpen(true))), - )) - ), []), - - () => Effect.fail(new Error()), - ) - if (Option.isNone(error)) return <> diff --git a/packages/reffuse/src/ReffuseNamespace.ts b/packages/reffuse/src/ReffuseNamespace.ts index 0a12773..66b3400 100644 --- a/packages/reffuse/src/ReffuseNamespace.ts +++ b/packages/reffuse/src/ReffuseNamespace.ts @@ -487,15 +487,15 @@ export abstract class ReffuseNamespace { this: ReffuseNamespace, stream: Stream.Stream, ): Option.Option - useSubscribeStream( + useSubscribeStream( this: ReffuseNamespace, stream: Stream.Stream, - initialValue: () => Effect.Effect, + initialValue: () => Effect.Effect, ): Option.Some - useSubscribeStream( + useSubscribeStream( this: ReffuseNamespace, stream: Stream.Stream, - initialValue?: () => Effect.Effect, + initialValue?: () => Effect.Effect, ): Option.Option { const [reactStateValue, setReactStateValue] = React.useState(this.useMemo( () => initialValue @@ -513,19 +513,25 @@ export abstract class ReffuseNamespace { return reactStateValue } - usePullStream( + usePullStream( this: ReffuseNamespace, stream: Stream.Stream, - initialValue?: () => Effect.Effect, - ): [ - latestValue: InitialA extends A ? Option.Some : Option.Option, - pull: Effect.Effect, Option.Option>, - ] { + ): [latestValue: Option.Option, pull: Effect.Effect, Option.Option>] + usePullStream( + this: ReffuseNamespace, + stream: Stream.Stream, + initialValue: () => Effect.Effect, + ): [latestValue: Option.Some, pull: Effect.Effect, Option.Option>] + usePullStream( + this: ReffuseNamespace, + stream: Stream.Stream, + initialValue?: () => Effect.Effect, + ): [latestValue: Option.Option, pull: Effect.Effect, Option.Option>] { const scope = this.useScope([stream]) - const [reactStateValue, setReactStateValue] = React.useState>(this.useMemo( + const [reactStateValue, setReactStateValue] = React.useState(this.useMemo( () => initialValue - ? Effect.map(initialValue(), v => Option.some(v as A)) + ? Effect.map(initialValue(), Option.some) : Effect.succeed(Option.none()), [], { doNotReExecuteOnRuntimeOrContextChange: true }, @@ -548,10 +554,7 @@ export abstract class ReffuseNamespace { )) ), [stream, scope]) - return [ - reactStateValue as InitialA extends A ? Option.Some : Option.Option, - pull, - ] + return [reactStateValue, pull] }