ens-usernames/app/dapp.js

83 lines
2.3 KiB
JavaScript
Raw Normal View History

2018-10-09 15:03:20 +00:00
import React from 'react';
2018-07-06 22:12:09 +00:00
import 'typeface-roboto'
2018-06-12 19:56:41 +00:00
import Toggle from 'react-toggle';
2018-05-13 04:31:01 +00:00
import EmbarkJS from 'Embark/EmbarkJS';
import TestToken from 'Embark/contracts/TestToken';
import UsernameRegistrar from 'Embark/contracts/UsernameRegistrar';
import NameLookup from './components/ens/nameLookup';
import AdminMode from './components/AdminMode';
import TokenPermissions from './components/standard/TokenPermissionConnect';
2018-06-19 19:05:42 +00:00
import web3 from "Embark/web3";
2018-07-06 22:12:09 +00:00
import Welcome from './components/ens/welcome';
import Hidden from '@material-ui/core/Hidden';
2018-08-24 18:13:06 +00:00
import Web3Render from './components/standard/Web3Render';
import StatusOptimized from './components/standard/StatusOptimized';
2018-10-09 15:03:20 +00:00
import { HashRouter, Route } from "react-router-dom";
2018-05-13 04:31:01 +00:00
import './dapp.css';
2018-06-19 19:05:42 +00:00
const { getNetworkType } = web3.eth.net;
const symbols = {
'ropsten': 'STT',
'private': 'SNT',
'main': 'SNT'
}
2018-10-09 15:03:20 +00:00
const Web3RenderContent = ({ network, history, match }) => (
<Web3Render ready={network === 'ropsten'} network={'Ropsten'}>
<div>
<NameLookup {...{history, match}}/>
<Hidden mdDown>
<div style={{textAlign: 'center', margin: '0px 40px'}}>
<TokenPermissions
symbol={symbols[network] || 'SNT'}
spender={UsernameRegistrar._address}
methods={TestToken.methods}/>
<hr/>
<Toggle onChange={() => {
this.setState({admin: !admin})
}}/>
<br/>
<span>Admin Mode</span>
</div>
</Hidden>
</div>
</Web3Render>
);
2018-05-13 04:31:01 +00:00
class App extends React.Component {
constructor(props) {
2018-06-12 19:56:41 +00:00
super(props)
2018-05-13 04:31:01 +00:00
}
2018-10-09 15:03:20 +00:00
state = { admin: false };
2018-05-13 04:31:01 +00:00
componentDidMount(){
2018-09-28 19:12:52 +00:00
EmbarkJS.onReady((err) => {
2018-06-19 19:05:42 +00:00
getNetworkType().then(network => { this.setState({ network })});
2018-05-13 04:31:01 +00:00
});
}
2018-06-12 19:56:41 +00:00
render() {
2018-10-09 15:03:20 +00:00
const { admin, network } = this.state;
2018-05-23 19:57:38 +00:00
return (
2018-10-09 16:39:37 +00:00
<HashRouter hashType="noslash">
2018-10-09 15:03:20 +00:00
<div>
<Hidden mdDown>
<StatusOptimized/>
</Hidden>
<div style={{display: admin ? 'block' : 'none'}}>
<AdminMode style={{display: admin ? 'block' : 'none'}}/>
2018-07-09 19:07:55 +00:00
</div>
2018-10-09 15:03:20 +00:00
<Route exact path="/" component={Welcome}/>
<Route path="/search" render={({history, match}) => (
<Web3RenderContent {...{history, match, network}} />
)}/>
</div>
</HashRouter>
2018-06-12 19:56:41 +00:00
);
2018-05-13 04:31:01 +00:00
}
}
2018-06-01 14:25:59 +00:00
export default App;