diff --git a/ui/js/src/main/scala/works/iterative/ui/components/ZIODispatcher.scala b/ui/js/src/main/scala/works/iterative/ui/components/ZIODispatcher.scala index f662a20..bd823dd 100644 --- a/ui/js/src/main/scala/works/iterative/ui/components/ZIODispatcher.scala +++ b/ui/js/src/main/scala/works/iterative/ui/components/ZIODispatcher.scala @@ -1,9 +1,12 @@ package works.iterative.ui.components import zio.* +import com.raquo.airstream.core.EventStream +import works.iterative.ui.components.laminar.LaminarExtensions.* trait ZIODispatcher[+Env]: def dispatch(action: ZIO[Env, Nothing, Unit]): Unit + def dispatchStream[A](action: ZIO[Env, Nothing, A]): EventStream[A] object ZIODispatcher: def fromRuntime[Env](using runtime: Runtime[Env]): ZIODispatcher[Env] = @@ -13,3 +16,8 @@ // TODO: do I need to cancel this on evenstream stop? val _ = runtime.unsafe.runToFuture(action) ) + + override def dispatchStream[A]( + action: ZIO[Env, Nothing, A] + ): EventStream[A] = + action.toEventStream