0.1.0 #1
@@ -1,4 +1,4 @@
|
|||||||
import { Context, Effect, Layer, Runtime } from "effect"
|
import { Array, Context, Effect, Layer, Runtime } from "effect"
|
||||||
import React from "react"
|
import React from "react"
|
||||||
import * as ReffuseRuntime from "./ReffuseRuntime.js"
|
import * as ReffuseRuntime from "./ReffuseRuntime.js"
|
||||||
|
|
||||||
@@ -60,8 +60,14 @@ export function useMergeAll<
|
|||||||
return React.useMemo(() => Context.mergeAll(...values), values)
|
return React.useMemo(() => Context.mergeAll(...values), values)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function useMergeAllLayers<
|
||||||
|
const Contexts extends Array.NonEmptyReadonlyArray<ReffuseContext<any>>
|
||||||
|
>(
|
||||||
|
...contexts: Contexts
|
||||||
|
): Layer.Layer<{ [K in keyof Contexts]: R<Contexts[K]> }[number]> {
|
||||||
|
const values = Array.map(contexts, v => React.use(v.Context))
|
||||||
|
|
||||||
const context1 = make<{ readonly service1: true }>()
|
return React.useMemo(() => Layer.mergeAll(
|
||||||
const context2 = make<{ readonly service2: true }>()
|
...Array.map(values, context => Layer.effectContext(Effect.succeed(context)))
|
||||||
|
) as Layer.Layer<any>, values)
|
||||||
const res = useMergeAll(context1, context2)
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user