Add useOnMount
All checks were successful
Lint / lint (push) Successful in 12s

This commit is contained in:
Julien Valverdé
2025-10-20 07:09:49 +02:00
parent 8b06c56ec0
commit adc8835304

View File

@@ -407,3 +407,15 @@ export const withRuntime: {
props,
)
})
export const useOnMount: {
<A, E, R>(
f: () => Effect.Effect<A, E, R>
): Effect.Effect<A, E, R>
} = Effect.fnUntraced(function* <A, E, R>(
f: () => Effect.Effect<A, E, R>
) {
const runtime = yield* Effect.runtime()
// biome-ignore lint/correctness/useExhaustiveDependencies: only computed on mount
return yield* React.useMemo(() => Runtime.runSync(runtime)(Effect.cached(f())), [])
})