diff --git a/app/scripts/pages/files.js b/app/scripts/pages/files.js index 85153bac9..a25ff2885 100644 --- a/app/scripts/pages/files.js +++ b/app/scripts/pages/files.js @@ -4,7 +4,6 @@ import {LinkContainer} from 'react-router-bootstrap' import debug from 'debug' import FileList from '../views/filelist' -import LocalStorage from '../utils/localStorage' import i18n from '../utils/i18n.js' const log = debug('pages:files') @@ -12,9 +11,8 @@ const log = debug('pages:files') export default class Files extends React.Component { state = { - files: LocalStorage.get('files') || [], pinned: [], - local: [], + files: [], dragging: false }; @@ -33,36 +31,53 @@ default class Files extends React.Component { clearInterval(this.pollInterval) } - getFiles = () => { + getFiles () { this.props.ipfs.pin.list((err, pinned) => { if (err || !pinned) return this.error(err) this.setState({ pinned: Object.keys(pinned.Keys).sort() }) }) + this.props.ipfs.pin.list('recursive', (err, pinned) => { if (err || !pinned) return this.error(err) this.setState({ - local: Object.keys(pinned.Keys).sort() + files: Object.keys(pinned.Keys).sort() }) }) - }; + } - addFile (event) { + _onAddFile = event => { event.preventDefault() this.refs.fileSelect.click() - } + }; - onDrop (event) { + _onDragOver = event => { + event.stopPropagation() + event.preventDefault() + this.setState({ + dragging: true + }) + }; + + _onDragLeave = event => { event.stopPropagation() event.preventDefault() this.setState({ dragging: false }) - this.onFileChange.bind(this, event) - } + }; + + _onDrop = event => { + event.stopPropagation() + event.preventDefault() + this.setState({ + dragging: false + }) + this._onFileChange(event) + }; - onFileChange (event) { + _onFileChange = event => { const files = event.target.files || event.dataTransfer.files if (!files || !files[0]) return var file = files[0] @@ -73,19 +88,8 @@ default class Files extends React.Component { if (err || !res) return this.error(err) res = res[0] - const metadata = { - id: res.Hash, - name: res.Name || file.name, - type: file.type, - size: file.size - } - - let nextFiles = (this.state.files || []) - nextFiles.unshift(metadata) - LocalStorage.set('files', nextFiles) this.setState({ - files: nextFiles, - confirm: metadata.name + confirm: res.Name || file.name }) setTimeout(() => this.setState({ @@ -106,7 +110,9 @@ default class Files extends React.Component { // TODO: use array buffers instead of base64 strings reader.readAsDataURL(file) } - } + + this.getFiles() + }; error (err) { console.error(err) @@ -116,11 +122,9 @@ default class Files extends React.Component { _renderTitle = () => { switch (this.props.location.pathname) { case '/files': - return this._renderAdder() + return
@@ -171,7 +175,7 @@ default class Files extends React.Component { ref='fileSelect' className='file-select' style={{display: 'none'}} - onChange={this.onFileChange.bind(this)} + onChange={this._onFileChange} />