diff --git a/packages/effect-components/src/ReactComponent.ts b/packages/effect-components/src/ReactComponent.ts index 44ecb35..940e44c 100644 --- a/packages/effect-components/src/ReactComponent.ts +++ b/packages/effect-components/src/ReactComponent.ts @@ -24,15 +24,17 @@ export const withDisplayName: { export const useFC: { ( - self: ReactComponent + self: ReactComponent, + options?: ReactHook.ScopeOptions, ): Effect.Effect, never, Exclude> } = Effect.fnUntraced(function* ( - self: ReactComponent + self: ReactComponent, + options?: ReactHook.ScopeOptions, ) { const runtime = yield* Effect.runtime>() return React.useMemo(() => function ScopeProvider(props: P) { - const scope = Runtime.runSync(runtime)(ReactHook.useScope()) + const scope = Runtime.runSync(runtime)(ReactHook.useScope(options)) const FC = React.useMemo(() => { const f = (props: P) => Runtime.runSync(runtime)( @@ -52,9 +54,10 @@ export const use: { ( self: ReactComponent, fn: (Component: React.FC

) => React.ReactNode, + options?: ReactHook.ScopeOptions, ): Effect.Effect> -} = Effect.fnUntraced(function*(self, fn) { - return fn(yield* useFC(self)) +} = Effect.fnUntraced(function*(self, fn, options) { + return fn(yield* useFC(self, options)) }) export const withRuntime: { diff --git a/packages/example/src/routes/effect-component-tests.tsx b/packages/example/src/routes/effect-component-tests.tsx index 321db46..e878655 100644 --- a/packages/example/src/routes/effect-component-tests.tsx +++ b/packages/example/src/routes/effect-component-tests.tsx @@ -68,10 +68,10 @@ const MyTestComponent = pipe( const service = yield* SubService const [value] = yield* ReactHook.useSubscribeRefs(service.ref) - yield* ReactHook.useMemo(() => Effect.andThen( - Effect.addFinalizer(() => Console.log("MyTestComponent umounted")), - Console.log("MyTestComponent mounted"), - ), []) + // yield* ReactHook.useMemo(() => Effect.andThen( + // Effect.addFinalizer(() => Console.log("MyTestComponent umounted")), + // Console.log("MyTestComponent mounted"), + // ), []) return <>