UNPKG

@equinor/fusion-framework-react-module

Version:

Utils for initializing and consuming fusion framework modules

38 lines (37 loc) 1.66 kB
import { type LazyExoticComponent, type FunctionComponent } from 'react'; import { type ModulesConfigurator, type ModulesInstanceType, type AnyModule } from '@equinor/fusion-framework-module'; type ModuleProviderCreator = <TModules extends Array<AnyModule> = Array<AnyModule>, TRef extends ModulesInstanceType<[AnyModule]> = any>(configurator: ModulesConfigurator<TModules>, modules: TModules, ref?: TRef) => Promise<LazyExoticComponent<FunctionComponent>>; /** * Function for creating a `ModuleProvider` component. * * __NOTE:__ this function requires component to be wrapped in `Suspense` * * @example * ```ts * import http, { HttpModule } from '@equinor/fusion-framework-module-http'; * import msal, { MsalModule } from '@equinor/fusion-framework-module-msal'; * import { createModuleProvider } from '@equinor/fusion-framework-react-module'; * * export default createModuleProvider( * (config) => { * config.auth.configureDefault({ * tenantId: 'MY_TENANT_ID', * clientId: 'MY_CLIENT_ID', * redirectUri: '/authentication/login-callback', * }); * config.http.configureClient('foo', { * baseUri: 'https://foo.bar', * defaultScopes: ['FOO_CLIENT_ID/.default'], * }); * }, * [http, msal] *); * ``` * @param configurator callback for configuring provided modules * @param modules modules which should be initiated * @param ref optional parent module instance * @returns Suspensive `ModuleProvider` */ export declare const createModuleProvider: ModuleProviderCreator; export declare const ModuleProvider: import("react").Provider<Record<string, unknown>>; export default ModuleProvider;