embark-area-51/templates/demo/app/dapp.js

76 lines
2.0 KiB
JavaScript
Raw Normal View History

import React from 'react';
import ReactDOM from 'react-dom';
import { Tabs, Tab } from 'react-bootstrap';
2018-01-03 17:42:48 +00:00
import EmbarkJS from 'Embark/EmbarkJS';
import Blockchain from './components/blockchain';
import Whisper from './components/whisper';
2018-04-24 20:21:33 +00:00
import Storage from './components/storage';
2018-01-03 17:42:48 +00:00
2018-01-12 21:33:16 +00:00
import './dapp.css';
class App extends React.Component {
constructor(props) {
super(props);
2015-05-24 13:07:19 +00:00
this.state = {
2018-04-24 20:21:33 +00:00
whisperEnabled: false,
storageEnabled: false
2017-10-25 10:19:24 +00:00
}
}
2017-10-25 10:19:24 +00:00
componentDidMount(){
EmbarkJS.onReady(() => {
2018-04-26 00:11:15 +00:00
if (EmbarkJS.isNewWeb3()) {
2018-04-27 15:47:35 +00:00
EmbarkJS.Messages.Providers.whisper.getWhisperVersion((err, version) => {
2018-04-26 00:11:15 +00:00
if(!err)
2018-04-27 15:47:35 +00:00
this.setState({whisperEnabled: true})
2018-04-26 00:11:15 +00:00
else
console.log(err);
});
} else {
if (EmbarkJS.Messages.providerName === 'whisper') {
2018-04-27 15:47:35 +00:00
EmbarkJS.Messages.getWhisperVersion((err, version) => {
2018-04-26 00:11:15 +00:00
if(!err)
2018-04-27 15:47:35 +00:00
this.setState({whisperEnabled: true})
2018-04-26 00:11:15 +00:00
else
console.log(err);
});
}
}
2018-04-27 15:47:35 +00:00
this.setState({
storageEnabled: true
});
2017-01-26 11:29:17 +00:00
});
}
2017-01-26 11:29:17 +00:00
_renderStatus(title, available){
let className = available ? 'pull-right status-online' : 'pull-right status-offline';
return <React.Fragment>
{title}
<span className={className}></span>
</React.Fragment>;
2017-10-25 10:19:24 +00:00
}
2017-01-26 11:29:17 +00:00
render(){
return (<div><h3>Embark - Usage Example</h3>
<Tabs defaultActiveKey={1} id="uncontrolled-tab-example">
<Tab eventKey={1} title="Blockchain">
<Blockchain />
</Tab>
2018-04-24 20:21:33 +00:00
<Tab eventKey={2} title={this._renderStatus('Decentralized Storage', this.state.storageEnabled)}>
2018-04-27 13:04:34 +00:00
<Storage enabled={this.state.storageEnabled} />
</Tab>
<Tab eventKey={3} title={this._renderStatus('P2P communication (Whisper/Orbit)', this.state.whisperEnabled)}>
<Whisper enabled={this.state.whisperEnabled} />
</Tab>
</Tabs>
</div>);
}
}
2017-01-26 11:29:17 +00:00
ReactDOM.render(<App></App>, document.getElementById('app'));