diff --git a/packages/reffuse/src/ReffuseNamespace.ts b/packages/reffuse/src/ReffuseNamespace.ts index e1890bb..6d994ae 100644 --- a/packages/reffuse/src/ReffuseNamespace.ts +++ b/packages/reffuse/src/ReffuseNamespace.ts @@ -380,13 +380,10 @@ export abstract class ReffuseNamespace { useRef( this: ReffuseNamespace, - initialValue: () => A | Effect.Effect, + initialValue: () => Effect.Effect, ): SubscriptionRef.SubscriptionRef { return this.useMemo( - () => pipe(initialValue(), - v => Effect.isEffect(v) ? v : Effect.succeed(v), - Effect.flatMap(SubscriptionRef.make), - ), + () => Effect.flatMap(initialValue(), SubscriptionRef.make), [], { doNotReExecuteOnRuntimeOrContextChange: true }, // Do not recreate the ref when the context changes ) @@ -396,7 +393,7 @@ export abstract class ReffuseNamespace { this: ReffuseNamespace, value: A, ): SubscriptionRef.SubscriptionRef { - const ref = this.useRef(() => value) + const ref = this.useRef(() => Effect.succeed(value)) this.useEffect(() => Ref.set(ref, value), [value], { doNotReExecuteOnRuntimeOrContextChange: true }) return ref }