useMergeAll
Some checks failed
Lint / lint (push) Failing after 9s

This commit is contained in:
Julien Valverdé
2025-01-15 02:06:46 +01:00
parent cb798ad466
commit 15c1fdd54c

View File

@@ -51,19 +51,17 @@ export function make<R = never>() {
return new ReffuseContext<R>() return new ReffuseContext<R>()
} }
export function useMergeAll<
export function useMergeMany<
const Contexts extends readonly ReffuseContext<any>[] const Contexts extends readonly ReffuseContext<any>[]
>( >(
contexts: Contexts ...contexts: Contexts
): { ): Context.Context<{ [K in keyof Contexts]: R<Contexts[K]> }[number]> {
[K in keyof Contexts]: R<Contexts[K]> const values = contexts.map(v => React.use(v.Context))
} { return React.useMemo(() => Context.mergeAll(...values), values)
} }
const context1 = make<{ readonly service1: true }>() const context1 = make<{ readonly service1: true }>()
const context2 = make<{ readonly service2: true }>() const context2 = make<{ readonly service2: true }>()
const res = useMergeMany([context1, context2]) const res = useMergeAll(context1, context2)