From 8025ec4a22ae2e41c6dea33cb5c1af34f476e884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 1 Jul 2025 16:31:30 +0200 Subject: [PATCH] Fix --- packages/effect-components/src/ReactComponent.ts | 13 ++++++++----- .../example/src/routes/effect-component-tests.tsx | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) 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 <>