0.1.0 #1
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user