Page MenuHomePhorge

provider-tree.tsx
ActivePublic

Authored by themackabu on Oct 26 2025, 11:59 PM.
Tags
None
Referenced Files
F2475674: provider-tree.tsx
Oct 26 2025, 11:59 PM
Subscribers
None
type ComposedProvider = Component<Children>;
type FlexibleProvider = Component<NonNullableChildren> | Component<Children>;
type ProviderConfig =
| [FlexibleProvider]
| [FlexibleProviderWithProps<Record<string, unknown>>, Record<string, unknown>];
type FlexibleProviderWithProps<TProps extends Record<string, unknown>> =
| Component<NonNullableChildren & TProps>
| Component<Children<TProps>>;
export function buildProvidersTree<TProviders extends ReadonlyArray<ProviderConfig>>(
providers: TProviders,
): ComposedProvider {
return providers.reduce<ComposedProvider>(
(AccumulatedProviders, providerConfig) => {
const [Provider, props = {}] = providerConfig;
return ({ children }) => (
<AccumulatedProviders>
<Provider {...props}>{children}</Provider>
</AccumulatedProviders>
);
},
({ children }) => children,
);
}

Event Timeline

themackabu created this object with visibility "Public (No Login Required)".
themackabu created this object with edit policy "themackabu (theMackabu)".
themackabu updated the paste's language from autodetect to js.Oct 27 2025, 12:02 AM