diff --git a/app/fileManager.js b/app/fileManager.js index 0845b1f2..895ca5c7 100644 --- a/app/fileManager.js +++ b/app/fileManager.js @@ -173,6 +173,7 @@ export default function(state, emitter) { await fadeOut('download-progress'); saveFile(f); state.storage.totalDownloads += 1; + state.transfer.reset(); metrics.completedDownload({ size, time, speed }); emitter.emit('pushState', '/completed'); } catch (err) { @@ -181,6 +182,7 @@ export default function(state, emitter) { return render(); } console.error(err); + state.transfer = null; const location = err.message === 'notfound' ? '/404' : '/error'; if (location === '/error') { state.raven.captureException(err); @@ -188,7 +190,6 @@ export default function(state, emitter) { } emitter.emit('pushState', location); } finally { - state.transfer = null; openLinksInNewTab(links, false); } }); diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 695d5938..b3b5502e 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -11,11 +11,7 @@ export default class FileReceiver extends Nanobus { this.keychain.setPassword(fileInfo.password, fileInfo.url); } this.fileInfo = fileInfo; - this.fileDownload = null; - this.msg = 'fileSizeProgress'; - this.state = 'initialized'; - this.progress = [0, 1]; - this.cancelled = false; + this.reset(); } get progressRatio() { @@ -36,6 +32,14 @@ export default class FileReceiver extends Nanobus { } } + reset() { + this.fileDownload = null; + this.msg = 'fileSizeProgress'; + this.state = 'initialized'; + this.progress = [0, 1]; + this.cancelled = false; + } + async getMetadata() { const meta = await metadata(this.fileInfo.id, this.keychain); if (meta) {