55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import { Tabs, Tab } from 'react-bootstrap';
|
|
|
|
import EmbarkJS from 'Embark/EmbarkJS';
|
|
import Blockchain from './components/blockchain';
|
|
import Whisper from './components/whisper';
|
|
|
|
import './dapp.css';
|
|
|
|
class App extends React.Component {
|
|
|
|
constructor(props) {
|
|
super(props);
|
|
|
|
this.state = {
|
|
whisperEnabled: false
|
|
}
|
|
}
|
|
|
|
componentDidMount(){
|
|
// TODO Verify if whisper & swarm are available
|
|
this.setState({
|
|
whisperEnabled: false
|
|
});
|
|
}
|
|
|
|
|
|
_renderStatus(title, available){
|
|
let className = available ? 'pull-right status-online' : 'pull-right status-offline';
|
|
return <React.Fragment>
|
|
{title}
|
|
<span className={className}></span>
|
|
</React.Fragment>;
|
|
}
|
|
|
|
render(){
|
|
return (<div><h3>Embark - Usage Example</h3>
|
|
<Tabs defaultActiveKey={1} id="uncontrolled-tab-example">
|
|
<Tab eventKey={1} title="Blockchain">
|
|
<Blockchain />
|
|
</Tab>
|
|
<Tab eventKey={2} title="Decentralized Storage (IPFS)">
|
|
Tab 2 content
|
|
</Tab>
|
|
<Tab eventKey={3} title={this._renderStatus('P2P communication (Whisper/Orbit)', this.state.whisperEnabled)}>
|
|
<Whisper enabled={this.state.whisperEnabled} />
|
|
</Tab>
|
|
</Tabs>
|
|
</div>);
|
|
}
|
|
}
|
|
|
|
ReactDOM.render(<App></App>, document.getElementById('app'));
|