diff --git a/packages/effect-fc/src/ReactComponent.ts b/packages/effect-fc/src/ReactComponent.ts index d3d354f..6663cf8 100644 --- a/packages/effect-fc/src/ReactComponent.ts +++ b/packages/effect-fc/src/ReactComponent.ts @@ -2,7 +2,7 @@ import { Context, Effect, ExecutionStrategy, Exit, Function, Pipeable, Ref, Runt import * as React from "react" -export interface ReactComponent extends Pipeable.Pipeable { +export interface ReactComponent extends Pipeable.Pipeable { (props: P): Effect.Effect readonly displayName?: string readonly options: Options @@ -26,7 +26,10 @@ export interface MakeOptions { readonly finalizerExecutionStrategy?: ExecutionStrategy.ExecutionStrategy } -export const make = >, P>( +export const make = < + Eff extends Utils.YieldWrap>, + P extends {} = {}, +>( body: (props: P) => Generator, options?: MakeOptions, ): ReactComponent< @@ -55,7 +58,7 @@ export const make = >, export const useFC: { - ( + ( self: ReactComponent ): Effect.Effect, never, Exclude> } = Effect.fnUntraced(function* ( @@ -124,7 +127,7 @@ const closeScope = ( export const use: { - ( + ( self: ReactComponent, fn: (Component: React.FC

) => React.ReactNode, ): Effect.Effect> @@ -133,10 +136,10 @@ export const use: { }) export const withRuntime: { - ( + ( context: React.Context>, ): (self: ReactComponent) => React.FC

- ( + ( self: ReactComponent, context: React.Context>, ): React.FC