Total Complexity | 1 |
Complexity/F | 1 |
Lines of Code | 42 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Coverage | 100% |
Changes | 0 |
1 | import React from 'react'; |
||
2 | import ReactDOM from 'react-dom'; |
||
3 | import Model from './Application/Model'; |
||
4 | import Page from './Page'; |
||
5 | import SideMenu, {IAdapter as ISideMenuAdapter} from './SideMenu'; |
||
6 | import TopBar, {IAdapter as ITopBarAdapter} from './TopBar'; |
||
7 | |||
8 | export interface IAdapter extends ITopBarAdapter, ISideMenuAdapter { |
||
9 | |||
10 | } |
||
11 | |||
12 | export interface IProperties { |
||
13 | model: Model |
||
14 | adapter: IAdapter |
||
15 | } |
||
16 | |||
17 | export default class Application { |
||
18 | adapter: IAdapter; |
||
19 | containerNode: Element | DocumentFragment | null; |
||
20 | |||
21 | constructor(containerNode: Element | DocumentFragment | null, adapter: IAdapter) { |
||
22 | 1 | this.containerNode = containerNode; |
|
23 | 1 | this.adapter = adapter; |
|
24 | } |
||
25 | |||
26 | render(model: Model): void { |
||
27 | 1 | const adapter = this.adapter; |
|
28 | |||
29 | 1 | ReactDOM.render( |
|
30 | <div className="mdc-typography"> |
||
31 | {model.styleSet.map( |
||
32 | 1 | (path: string) => <link key={'stylePath_' + path} rel="stylesheet" href={path} /> |
|
33 | )} |
||
34 | <TopBar model={model.topAppBar} adapter={adapter} /> |
||
35 | <SideMenu model={model.sideMenu} adapter={adapter} /> |
||
36 | <Page model={model.page} /> |
||
37 | </div>, |
||
38 | this.containerNode |
||
39 | ); |
||
40 | } |
||
41 | } |
||
42 |