-
Notifications
You must be signed in to change notification settings - Fork 24
/
integrator.tsx
48 lines (44 loc) · 1.42 KB
/
integrator.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import {createFeatureHub} from '@feature-hub/core';
import {defineLogger} from '@feature-hub/logger';
import {defineExternals, loadAmdModule} from '@feature-hub/module-loader-amd';
import {FeatureAppLoader, FeatureHubContextProvider} from '@feature-hub/react';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import {todoManagerDefinition} from './todo-manager';
const {featureAppManager} = createFeatureHub('test:todomvc-integrator', {
featureServiceDefinitions: [defineLogger(), todoManagerDefinition],
moduleLoader: loadAmdModule,
providedExternals: {
react: process.env.REACT_VERSION as string,
},
});
defineExternals({react: React});
document.head.appendChild(
Object.assign(document.createElement('link'), {
rel: 'stylesheet',
href: 'index.css',
}),
);
ReactDOM.render(
<FeatureHubContextProvider value={{featureAppManager}}>
<section className="todoapp">
<FeatureAppLoader
featureAppId="test:todomvc-header"
baseUrl="header"
src="feature-app-header.umd.js"
css={[{href: 'index.css'}]}
/>
<FeatureAppLoader
featureAppId="s2:todomvc-main"
baseUrl="main"
src="feature-app-main.umd.js"
/>
<FeatureAppLoader
featureAppId="test:todomvc-footer"
baseUrl="footer"
src="feature-app-footer.umd.js"
/>
</section>
</FeatureHubContextProvider>,
document.querySelector('main'),
);