-
Notifications
You must be signed in to change notification settings - Fork 96
/
SettingsMenu.js
87 lines (82 loc) · 2.53 KB
/
SettingsMenu.js
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// @flow
import React, { Component } from 'react';
import type { Node } from 'react';
import { observer } from 'mobx-react';
import { defineMessages, intlShape } from 'react-intl';
import environmnent from '../../../environment';
import { ROUTES } from '../../../routes-config';
import globalMessages from '../../../i18n/global-messages';
import type { $npm$ReactIntl$IntlFormat } from 'react-intl';
import SubMenu from '../../topbar/SubMenu';
const messages = defineMessages({
general: {
id: 'settings.menu.general.link.label',
defaultMessage: '!!!General',
},
blockchain: {
id: 'settings.menu.blockchain.link.label',
defaultMessage: '!!!Blockchain',
},
levelOfComplexity: {
id: 'settings.menu.levelOfComplexity.link.label',
defaultMessage: '!!!Level of Complexity',
},
externalStorage: {
id: 'settings.menu.externalStorage.link.label',
defaultMessage: '!!!External Storage',
},
});
type Props = {|
+isActiveItem: string => boolean,
+onItemClick: string => void,
|};
@observer
export default class SettingsMenu extends Component<Props> {
static contextTypes: {| intl: $npm$ReactIntl$IntlFormat |} = {
intl: intlShape.isRequired,
};
render(): Node {
const { intl } = this.context;
const { onItemClick, isActiveItem } = this.props;
const settingOptions: Array<Object> = [
{
label: intl.formatMessage(messages.general),
route: ROUTES.SETTINGS.GENERAL,
className: 'general',
},
{
label: intl.formatMessage(messages.blockchain),
route: ROUTES.SETTINGS.BLOCKCHAIN,
className: 'blockchain',
},
{
label: intl.formatMessage(globalMessages.walletLabel),
route: ROUTES.SETTINGS.WALLET,
className: 'wallet',
},
!environmnent.isProduction() && {
label: intl.formatMessage(messages.externalStorage),
route: ROUTES.SETTINGS.EXTERNAL_STORAGE,
className: 'externalStorage',
},
{
label: intl.formatMessage(globalMessages.termsOfUse),
route: ROUTES.SETTINGS.TERMS_OF_USE,
className: 'termsOfUse',
},
{
label: intl.formatMessage(globalMessages.support),
route: ROUTES.SETTINGS.SUPPORT,
className: 'support',
},
{
label: intl.formatMessage(messages.levelOfComplexity),
route: ROUTES.SETTINGS.LEVEL_OF_COMPLEXITY,
className: 'levelOfComplexity',
},
];
return (
<SubMenu options={settingOptions} onItemClick={onItemClick} isActiveItem={isActiveItem} />
);
}
}