Composes multiple React providers into a single wrapper component,
eliminating deeply nested provider trees.
Accepts bare providers (children-only) or [Provider, props] tuples
for providers that need configuration. Providers are nested in the
order given — first entry becomes the outermost wrapper.
import { compose } from '@logosdx/react';
// Without compose — the pyramid of doom:
<AppObserver>
<ApiFetch>
<AppStorage>
<AppLocale>
<App />
</AppLocale>
</AppStorage>
</ApiFetch>
</AppObserver>
// With compose:
const Providers = compose(
AppObserver,
ApiFetch,
AppStorage,
AppLocale,
);
<Providers>
<App />
</Providers>
// With props for providers that need configuration:
const Providers = compose(
AppObserver,
[ThemeProvider, { theme: 'dark' }],
ApiFetch,
);
Composes multiple React providers into a single wrapper component, eliminating deeply nested provider trees.
Accepts bare providers (children-only) or
[Provider, props]tuples for providers that need configuration. Providers are nested in the order given — first entry becomes the outermost wrapper.