diff --git a/packages/effect-components/src/ReactHook.ts b/packages/effect-components/src/ReactHook.ts
index 02fefa8..5ccfa08 100644
--- a/packages/effect-components/src/ReactHook.ts
+++ b/packages/effect-components/src/ReactHook.ts
@@ -12,17 +12,17 @@ export const useMemo: {
(
factory: () => Effect.Effect,
deps: React.DependencyList,
- ): Effect.Effect
+ ): Effect.Effect
} = Effect.fnUntraced(function* (
factory: () => Effect.Effect,
deps: React.DependencyList,
) {
- const runtime = yield* Effect.runtime()
- return React.useMemo(() => Runtime.runSync(runtime)(factory()), deps)
+ const runtime = yield* Effect.runtime()
+ return yield* React.useMemo(() => Runtime.runSync(runtime)(Effect.cached(factory())), deps)
})
export const useOnce: {
- (factory: () => Effect.Effect): Effect.Effect
+ (factory: () => Effect.Effect): Effect.Effect
} = Effect.fnUntraced(function* (
factory: () => Effect.Effect
) {
@@ -32,7 +32,7 @@ export const useOnce: {
export const useMemoLayer: {
(
layer: Layer.Layer
- ): Effect.Effect, never, RIn>
+ ): Effect.Effect, E, RIn>
} = Effect.fnUntraced(function* (
layer: Layer.Layer
) {