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 ) {