1 import React from 'react'
2 import {connect} from 'react-redux'
3 import {Link} from 'react-router'
4 import styles from './Navigation.scss'
5 import {navIcon} from '../../utils'
6 import Sync from '../Sync/Sync'
7 import {docsRoot} from '../../../../utility/environment'
9 class Navigation extends React.Component {
13 this.openTutorial = this.openTutorial.bind(this)
17 event.preventDefault()
18 this.props.openTutorial()
22 const lang = this.props.lang
24 <div className={styles.main}>
25 <ul className={styles.navigation}>
26 <li className={styles.navigationTitle}>{lang === 'zh' ? '核心数据' : 'core data'}</li>
28 <Link to='/transactions' activeClassName={styles.active}>
29 {navIcon('transaction', styles)}
31 {lang === 'zh' ? '交易' : 'Transactions'}
35 <Link to='/accounts' activeClassName={styles.active}>
36 {navIcon('account', styles)}
37 {lang === 'zh' ? '账户' : 'Accounts'}
41 <Link to='/assets' activeClassName={styles.active}>
42 {navIcon('asset', styles)}
43 {lang === 'zh' ? '资产' : 'Assets'}
47 <Link to='/balances' activeClassName={styles.active}>
48 {navIcon('balance', styles)}
49 {lang === 'zh' ? '余额' : 'Balances'}
54 <ul className={styles.navigation}>
55 <li className={styles.navigationTitle}>{lang === 'zh' ? '服务' : 'services' }</li>
56 {this.props.mockhsm &&
58 <Link to='/keys' activeClassName={styles.active}>
59 {navIcon('mockhsm', styles)}
60 {lang === 'zh' ? '密钥' : 'Keys'}
66 { this.props.showNavAdvance && <ul className={styles.navigation}>
67 <li className={styles.navigationTitle}>{lang === 'zh' ? '高级' : 'advanced' }</li>
69 <Link to='/unspents' activeClassName={styles.active}>
70 {navIcon('unspent', styles)}
71 {lang === 'zh' ? '未花费输出' : 'Unspent outputs' }
76 <ul className={styles.navigation}>
77 <li className={styles.navigationTitle}>{lang === 'zh' ? '帮助' : 'help' }</li>
79 <a href={docsRoot} target='_blank'>
80 {navIcon('docs', styles)}
81 {lang === 'zh' ? '文档' : 'Documentation'}
95 export default connect(
99 const versionComponents = state.core.version.match('^([0-9]\\.[0-9])\\.')
100 if (versionComponents != null) {
101 docVersion = versionComponents[1]
105 coreData: state.core.coreData,
106 routing: state.routing, // required for <Link>s to update active state on navigation
107 showSync: state.core.configured && !state.core.generator,
108 lang: state.core.lang,
111 showNavAdvance: state.app.navAdvancedState === 'advance'
115 openTutorial: () => dispatch({type: 'OPEN_TUTORIAL'}),
116 setLang: (event) => {
118 type: 'UPDATE_CORE_LANGUAGE',