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 appAction from '../../../app/actions'
8 import {docsRoot} from '../../../../utility/environment'
10 class Navigation extends React.Component {
14 this.openTutorial = this.openTutorial.bind(this)
18 if(window.ipcRenderer){
19 window.ipcRenderer.on('toggleNavState', (event, arg) => {
20 arg === 'advance'? this.props.showNavAdvanced() : this.props.hideNavAdvanced()
26 event.preventDefault()
27 this.props.openTutorial()
31 const lang = this.props.lang
33 <div className={styles.main}>
34 <ul className={styles.navigation}>
35 <li className={styles.navigationTitle}>{lang === 'zh' ? '核心数据' : 'core data'}</li>
37 <Link to='/transactions' activeClassName={styles.active}>
38 {navIcon('transaction', styles)}
40 {lang === 'zh' ? '交易' : 'Transactions'}
44 <Link to='/accounts' activeClassName={styles.active}>
45 {navIcon('account', styles)}
46 {lang === 'zh' ? '账户' : 'Accounts'}
50 <Link to='/assets' activeClassName={styles.active}>
51 {navIcon('asset', styles)}
52 {lang === 'zh' ? '资产' : 'Assets'}
56 <Link to='/balances' activeClassName={styles.active}>
57 {navIcon('balance', styles)}
58 {lang === 'zh' ? '余额' : 'Balances'}
63 <ul className={styles.navigation}>
64 <li className={styles.navigationTitle}>{lang === 'zh' ? '服务' : 'services' }</li>
65 {this.props.mockhsm &&
67 <Link to='/keys' activeClassName={styles.active}>
68 {navIcon('mockhsm', styles)}
69 {lang === 'zh' ? '密钥' : 'Keys'}
75 { this.props.showNavAdvance && <ul className={styles.navigation}>
76 <li className={styles.navigationTitle}>{lang === 'zh' ? '高级' : 'advanced' }</li>
78 <Link to='/unspents' activeClassName={styles.active}>
79 {navIcon('unspent', styles)}
80 {lang === 'zh' ? '未花费输出' : 'Unspent outputs' }
85 <ul className={styles.navigation}>
86 <li className={styles.navigationTitle}>{lang === 'zh' ? '帮助' : 'help' }</li>
88 <a href={docsRoot} target='_blank'>
89 {navIcon('docs', styles)}
90 {lang === 'zh' ? '文档' : 'Documentation'}
104 export default connect(
108 const versionComponents = state.core.version.match('^([0-9]\\.[0-9])\\.')
109 if (versionComponents != null) {
110 docVersion = versionComponents[1]
114 coreData: state.core.coreData,
115 routing: state.routing, // required for <Link>s to update active state on navigation
116 showSync: state.core.configured && !state.core.generator,
117 lang: state.core.lang,
120 showNavAdvance: state.app.navAdvancedState === 'advance'
124 showNavAdvanced: () => dispatch(appAction.showNavAdvanced),
125 hideNavAdvanced: () => dispatch(appAction.hideNavAdvanced),
126 openTutorial: () => dispatch({type: 'OPEN_TUTORIAL'}),
127 setLang: (event) => {
129 type: 'UPDATE_CORE_LANGUAGE',