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

{i18n.t('All Local Files')}

case '/files/pinned': return

{i18n.t('Pinned Files')}

- case '/files/all': - return

{i18n.t('All Local Files')}

default: return '' } @@ -131,9 +135,9 @@ default class Files extends React.Component {
this.setState({dragging: true})} - onDragLeave={() => this.setState({dragging: false})} - onDrop={this.onDrop.bind(this)} + onDragOver={this._onDragOver} + onDragLeave={this._onDragLeave} + onDrop={this._onDrop} >
@@ -147,10 +151,10 @@ default class Files extends React.Component {

@@ -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} />

) @@ -184,6 +188,7 @@ default class Files extends React.Component { @@ -200,17 +205,6 @@ default class Files extends React.Component { /> ) - case '/files/all': - return ( - - - - ) default: return '' } @@ -220,15 +214,13 @@ default class Files extends React.Component { return ( + {this._renderAdder()}
diff --git a/app/scripts/routes.js b/app/scripts/routes.js index 10f2f52c0..1194a2f67 100644 --- a/app/scripts/routes.js +++ b/app/scripts/routes.js @@ -24,7 +24,6 @@ default ( - diff --git a/app/scripts/utils/localStorage.js b/app/scripts/utils/localStorage.js deleted file mode 100644 index d561138ba..000000000 --- a/app/scripts/utils/localStorage.js +++ /dev/null @@ -1,44 +0,0 @@ -import _ from 'lodash' -import debug from 'debug' - -const log = debug('utils:localStorage') -const warn = debug('utils:localStorage:warn') - -// Utility to make interacting with localstorage less painful. -const ls = process.browser && window.localStorage - -// LS API is obnoxious this way -const translations = { - get: 'getItem', - set: 'setItem', - remove: 'removeItem' -} -const operations = ['getItem', 'setItem', 'clear', 'removeItem'].concat(_.keys(translations)) - -_.each(operations, op => module.exports[op] = () => doOperation(translations[op] || op)) - -const doOperation = op => { - if (!ls) { - return - } - const args = _.toArray(arguments).slice(1) - - // Allow setting objects directly - if (op === 'setItem' && args[1] !== 'string') { - args[1] = JSON.stringify(args[1]) - } - try { - let result = ls[op].apply(ls, args) - // If getting, attempt to parse - if (op === 'getItem') { - try { - result = JSON.parse(result) - } catch (e) { - log('Unable to parse result as json. Message: %s', e.message) - } - } - return result - } catch (e) { - warn(e.message) - } -}