Passed
Push — develop ( 6405a0...9011bf )
by Endre
03:30
created

src/Application/Application.tsx   A

Complexity

Total Complexity 4
Complexity/F 1

Size

Lines of Code 48
Function Count 4

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 37
dl 0
loc 48
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0
wmc 4
mnd 0
bc 0
fnc 4
bpm 0
cpm 1
noi 0

4 Functions

Rating   Name   Duplication   Size   Complexity  
A Application.render 0 5 1
A Application.componentDidMount 0 3 1
A Application.onMenuOpenStateChange 0 3 1
A Application.onLanguageLoaded 0 3 1
1
import React from 'react';
2
import {ILanguageSetup} from '../Language/ChangeLanguageSetup';
3
import Container from './Container';
4
import ApplicationView, {IAdapter} from './View/Application';
5
import Model from './View/Application/Model';
6
7
interface IProperties {
8
}
9
10
interface IState {
11
  loadedLanguage: string,
12
  menuOpen: boolean
13
}
14
15
export default class Application extends React.Component<IProperties, IState> {
16
  adapter: IAdapter;
17
18
  constructor(props: IProperties) {
19 3
    super(props);
20
21 3
    this.state = {
22
      loadedLanguage: Container.language.setupObserver.value.languageCode,
23
      menuOpen: Container.menuOpenState.value
24
    };
25
26 3
    Container.language.setupAdapter.addListener(this.onLanguageLoaded.bind(this));
27 3
    Container.menuOpenStateAdapter.onChange = this.onMenuOpenStateChange.bind(this);
28 3
    this.adapter = Container.applicationAction.adapter;
29
  }
30
31
  componentDidMount(): void {
32 3
    Container.language.changeLanguageSetup.interact({languageCode: 'de-de'}, {}).then();
33
  }
34
35
  onLanguageLoaded(oldValue: ILanguageSetup, newValue: ILanguageSetup) {
36 1
    this.setState({loadedLanguage: newValue.languageCode});
37
  }
38
39
  onMenuOpenStateChange(oldValue: boolean, newValue: boolean) {
40 1
    this.setState({menuOpen: newValue});
41
  }
42
43
  render(): React.ReactNode {
44 5
    const model: Model = Container.applicationPresenter.present('Application');
45
46 5
    return <ApplicationView model={model} adapter={this.adapter} />;
47
  }
48
}