import { Effect, Ref, SubscriptionRef } from "effect" import { useEffect } from "./useEffect.js" import { useOnce } from "./useOnce.js" export const useRefFromReactiveValue: { (value: A): Effect.Effect> } = Effect.fnUntraced(function*(value) { const ref = yield* useOnce(() => SubscriptionRef.make(value)) yield* useEffect(() => Ref.set(ref, value), [value]) return ref })