piral-core
Version:
The core library for creating a Piral instance.
34 lines • 1.26 kB
JavaScript
import * as React from 'react';
import { StateContext } from './state';
import { createInstance } from './createInstance';
import { Mediator } from './components';
import { useGlobalState } from './hooks';
import { RootListener } from './RootListener';
const PiralProvider = ({ children }) => {
const Provider = useGlobalState((m) => m.provider || React.Fragment);
return React.createElement(Provider, null, children);
};
/**
* Represents the Piral app shell frame. Use this component together
* with an existing instance to render components from micro frontends
* in your app.
* Wires the state container together with the global providers.
*
* @example
```jsx
const app = (
<MyRouter>
<PiralContext instance={yourPiralInstance}>
<PiralGlobals />
<MyAppContent />
</PiralContext>
</MyRouter>
);
```
*/
export const PiralContext = ({ instance = createInstance(), children }) => (React.createElement(StateContext.Provider, { value: instance.context },
React.createElement(Mediator, { options: instance.options, key: instance.id }),
React.createElement(RootListener, null),
React.createElement(PiralProvider, null, children)));
PiralContext.displayName = 'PiralContext';
//# sourceMappingURL=PiralContext.js.map