0.1.0 #1

Merged
Thilawyn merged 87 commits from next into master 2025-01-18 00:54:42 +01:00
Showing only changes of commit 11030ddc2b - Show all commits

View File

@@ -1,4 +1,4 @@
import { Context, Effect, ExecutionStrategy, Exit, Fiber, Ref, Runtime, Scope, Stream, SubscriptionRef } from "effect"
import { Context, Effect, ExecutionStrategy, Exit, Fiber, Option, Ref, Runtime, Scope, Stream, SubscriptionRef } from "effect"
import React from "react"
import * as ReffuseContext from "./ReffuseContext.js"
import * as ReffuseRuntime from "./ReffuseRuntime.js"
@@ -280,6 +280,17 @@ export class Reffuse<R> {
return [reactStateValue, setValue]
}
useStreamState<A, E>(stream: Stream.Stream<A, E, R>): Option.Option<A> {
const [reactStateValue, setReactStateValue] = React.useState(Option.none<A>())
this.useFork(Stream.runForEach(stream, v => Effect.sync(() =>
setReactStateValue(Option.some(v))
)), [stream])
return reactStateValue
}
}