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

Application.onMenuOpenStateChange   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
dl 0
loc 3
ccs 1
cts 1
cp 1
crap 1
rs 10
c 0
b 0
f 0
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
}