import { Effect, Runtime } from "effect"
import * as React from "react"
export const useMemo: {
(
factory: () => Effect.Effect,
deps: React.DependencyList,
): Effect.Effect
} = Effect.fnUntraced(function* (
factory: () => Effect.Effect,
deps: React.DependencyList,
) {
const runtime = yield* Effect.runtime()
// biome-ignore lint/correctness/useExhaustiveDependencies: use of React.DependencyList
return yield* React.useMemo(() => Runtime.runSync(runtime)(Effect.cached(factory())), deps)
})