import EmbarkJS from 'Embark/EmbarkJS'; import React from 'react'; import { Alert, Form, FormGroup, FormControl, HelpBlock, Button } from 'react-bootstrap'; class Storage extends React.Component { constructor(props) { super(props); this.state = { textToSave: 'hello world!', generatedHash: '', loadText: '', storedText: '', fileToUpload: null, fileHash: '', imageToDownload: '', url: '', logs: [] }; this.setText = this.setText.bind(this); this.loadHash = this.loadHash.bind(this); this.uploadFile = this.uploadFile.bind(this); this.handleFileUpload = this.handleFileUpload.bind(this); this.loadFile = this.loadFile.bind(this); } handleChange(e, name){ this.state[name] = e.target.value; this.setState(this.state); } handleFileUpload(e){ this.setState({ fileToUpload: [e.target] }); } _addToLog(txt){ this.state.logs.push(txt); this.setState({logs: this.state.logs}); } setText(e){ e.preventDefault(); let _this = this; EmbarkJS.Storage.saveText(this.state.textToSave) .then(function(hash) { _this.setState({ generatedHash: hash, loadText: hash }); _this._addToLog("EmbarkJS.Storage.saveText('" + _this.state.textToSave + "').then(function(hash) { })"); }) .catch(function(err) { if(err){ console.log("Storage saveText Error => " + err.message); } }); } loadHash(e){ e.preventDefault(); let _this = this; EmbarkJS.Storage.get(this.state.loadText) .then(function(content) { _this.setState({storedText: content}); _this._addToLog("EmbarkJS.Storage.get('" + _this.state.loadText + "').then(function(content) { })"); }) .catch(function(err) { if(err){ console.log("Storage get Error => " + err.message); } }); } uploadFile(e){ e.preventDefault(); let _this = this; EmbarkJS.Storage.uploadFile(this.state.fileToUpload) .then(function(hash) { _this.setState({ fileHash: hash, imageToDownload: hash }); _this._addToLog("EmbarkJS.Storage.uploadFile(this.state.fileToUpload).then(function(hash) { })"); }) .catch(function(err) { if(err){ console.log("Storage uploadFile Error => " + err.message); } }); } loadFile(e){ let _url = EmbarkJS.Storage.getUrl(this.state.imageToDownload); this.setState({url: _url}) this._addToLog("EmbarkJS.Storage.getUrl('" + this.state.imageToDownload + "')"); } render(){ return { !this.props.enabled ? The node you are using does not support IPFS. Please ensure CORS is setup for the IPFS node. : '' }

Save text to storage

this.handleChange(e, 'textToSave')} /> generated Hash: {this.state.generatedHash}

Load text from storage given an hash

this.handleChange(e, 'loadText')} /> result: {this.state.storedText}

Upload file to storage

generated hash: {this.state.fileHash}

Get file or image from storage

this.handleChange(e, 'imageToDownload')} /> file available at: {this.state.url}

Javascript calls being made:

EmbarkJS.Storage.setProvider('ipfs',{'{'}server: 'localhost', port: '5001'{'}'})

{ this.state.logs.map((item, i) =>

{item}

) }
; } } export default Storage;