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 Storage from './components/storage'; import ENS from './components/ens'; import './dapp.css'; class App extends React.Component { constructor(props) { super(props); this.handleSelect = this.handleSelect.bind(this); this.state = { error: false, activeKey: 1, whisperEnabled: false, storageEnabled: false, ensEnabled: false }; } componentDidMount() { EmbarkJS.onReady((err) => { if (err) { // If err is not null then it means something went wrong connecting to ethereum // you can use this to ask the user to enable metamask for e.g return this.setState({error: err}); } if (EmbarkJS.isNewWeb3()) { EmbarkJS.Messages.Providers.whisper.getWhisperVersion((err, _version) => { if (err) { return console.log(err); } this.setState({whisperEnabled: true}); }); } else { if (EmbarkJS.Messages.providerName === 'whisper') { EmbarkJS.Messages.getWhisperVersion((err, _version) => { if (err) { return console.log(err); } this.setState({whisperEnabled: true}); }); } } EmbarkJS.Storage.isAvailable().then((result) => { this.setState({storageEnabled: result}); }).catch(() => { this.setState({storageEnabled: false}); }); this.setState({ ensEnabled: EmbarkJS.Names.isAvailable() }); }); } _renderStatus(title, available) { let className = available ? 'pull-right status-online' : 'pull-right status-offline'; return {title} ; } handleSelect(key) { this.setState({ activeKey: key }); } render() { if (this.state.error) { return (
Something went wrong connecting to ethereum. Please make sure you have a node running or are using metamask to connect to the ethereum network:
{this.state.error}
); } return (

Embark - Usage Example

); } } ReactDOM.render(, document.getElementById('app'));