diff --git a/packages/reffuse/src/ReffuseContext.tsx b/packages/reffuse/src/ReffuseContext.tsx index c6b19a1..e00f014 100644 --- a/packages/reffuse/src/ReffuseContext.tsx +++ b/packages/reffuse/src/ReffuseContext.tsx @@ -58,18 +58,20 @@ export function useMergeAll>( return React.useMemo(() => Context.mergeAll(...values), values) } -export function useMergeAllLayers< - const Contexts extends Array.NonEmptyReadonlyArray> ->( - ...contexts: Contexts -): Layer.Layer<{ [K in keyof Contexts]: R }[number]> { - const values = Array.map(contexts, v => React.use(v.Context)) +/** TODO: find a way to make 'contexts' a NonEmptyArray */ +export function useMergeAllLayers>( + ...contexts: [...{ [K in keyof T]: ReffuseContext }] +): Layer.Layer { + const values = Array.map( + contexts as Array.NonEmptyArray>, + v => React.use(v.Context), + ) return React.useMemo(() => Layer.mergeAll( ...Array.map(values, context => Layer.effectContext(Effect.succeed(context))) ) as Layer.Layer, values) } -declare const context1: ReffuseContext -declare const context2: ReffuseContext<"prout"> -const res = useMergeAll(context1, context2) +// declare const context1: ReffuseContext +// declare const context2: ReffuseContext<"prout"> +// const res = useMergeAllLayers(context1, context2)