MyCrypto/common/components/Header/index.jsx

83 lines
2.7 KiB
React
Raw Normal View History

2017-05-23 16:06:01 -07:00
// @flow
import React, { Component } from 'react';
import TabsOptions from './components/TabsOptions';
import { Link } from 'react-router';
2017-06-26 15:27:55 -07:00
import { Dropdown } from 'components/ui';
2017-07-03 18:25:01 -07:00
import { languages, NODES } from '../../config/data';
import logo from 'assets/images/logo-myetherwallet.svg';
2017-04-11 22:04:27 -07:00
export default class Header extends Component {
2017-07-03 20:21:19 -07:00
props: {
languageSelection: string,
nodeSelection: string,
2017-06-18 12:56:12 -07:00
2017-07-03 20:21:19 -07:00
changeLanguage: (sign: string) => any,
changeNode: (key: string) => any
2017-07-01 22:49:06 -07:00
};
2017-04-11 22:04:27 -07:00
2017-07-01 22:49:06 -07:00
render() {
2017-07-03 20:21:19 -07:00
const { languageSelection, changeNode, nodeSelection } = this.props;
const selectedLanguage =
languages.find(l => l.sign === languageSelection) || languages[0];
const selectedNode = NODES[nodeSelection];
2017-07-01 22:49:06 -07:00
return (
<div>
<section className="bg-gradient header-branding">
<section className="container">
<Link to={'/'} className="brand" aria-label="Go to homepage">
<img src={logo} height="64px" width="245px" alt="MyEtherWallet" />
2017-07-01 22:49:06 -07:00
</Link>
<div className="tagline">
<span style={{ maxWidth: '395px' }}>
Open-Source & Client-Side Ether Wallet · v3.6.0
</span>
&nbsp;&nbsp;&nbsp;
<Dropdown
2017-07-03 20:21:19 -07:00
ariaLabel={`change language. current language ${selectedLanguage.name}`}
2017-07-01 22:49:06 -07:00
options={languages}
formatTitle={o => o.name}
2017-07-03 20:21:19 -07:00
value={selectedLanguage}
2017-07-01 22:49:06 -07:00
extra={[
<li key={'separator'} role="separator" className="divider" />,
<li key={'disclaimer'}>
<a data-toggle="modal" data-target="#disclaimerModal">
Disclaimer
</a>
</li>
]}
2017-07-03 20:21:19 -07:00
onChange={this.changeLanguage}
2017-07-01 22:49:06 -07:00
/>
&nbsp;&nbsp;&nbsp;
<Dropdown
2017-07-03 20:21:19 -07:00
ariaLabel={`change node. current node ${selectedNode.network} node by ${selectedNode.service}`}
options={Object.keys(NODES)}
2017-07-01 22:49:06 -07:00
formatTitle={o => [
2017-07-03 20:21:19 -07:00
NODES[o].network,
2017-07-01 22:49:06 -07:00
' ',
2017-07-03 20:21:19 -07:00
<small key="service">
({NODES[o].service})
</small>
2017-07-01 22:49:06 -07:00
]}
value={nodeSelection}
extra={
<li>
2017-07-03 20:21:19 -07:00
<a onClick={() => {}}>Add Custom Node</a>
2017-07-01 22:49:06 -07:00
</li>
}
onChange={changeNode}
/>
</div>
</section>
</section>
2017-04-18 16:36:29 -07:00
2017-07-01 22:49:06 -07:00
<TabsOptions {...this.props} />
</div>
);
}
2017-07-03 18:25:01 -07:00
2017-07-03 20:21:19 -07:00
changeLanguage = (value: { sign: string }) => {
this.props.changeLanguage(value.sign);
};
2017-04-11 22:04:27 -07:00
}