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