changed to handle 404 during download, also removing progress listener once percent completion is 100 to avoid manipulating DOM twice
This commit is contained in:
parent
028b6400cb
commit
f80c0b5b1d
2 changed files with 16 additions and 2 deletions
|
@ -15,6 +15,8 @@ let download = () => {
|
|||
progress.innerText = `Progress: ${percentComplete}%`;
|
||||
|
||||
if (percentComplete === 100) {
|
||||
fileReceiver.removeAllListeners('progress');
|
||||
|
||||
let finished = document.createElement('p');
|
||||
finished.innerText = 'Your download has finished.';
|
||||
li.appendChild(finished);
|
||||
|
@ -28,7 +30,13 @@ let download = () => {
|
|||
}
|
||||
});
|
||||
|
||||
fileReceiver.download().then(([decrypted, fname]) => {
|
||||
fileReceiver.download()
|
||||
.catch((err) => {
|
||||
console.log('The file has expired, or has already been deleted.');
|
||||
document.getElementById('downloaded_files').removeChild(li);
|
||||
return;
|
||||
})
|
||||
.then(([decrypted, fname]) => {
|
||||
name.innerText = fname;
|
||||
let dataView = new DataView(decrypted);
|
||||
let blob = new Blob([dataView]);
|
||||
|
|
|
@ -20,6 +20,11 @@ class FileReceiver extends EventEmitter {
|
|||
};
|
||||
|
||||
xhr.onload = function(e) {
|
||||
|
||||
if (xhr.status === 404) {
|
||||
reject(new Error('The file has expired, or has already been deleted.'));
|
||||
}
|
||||
|
||||
let blob = new Blob([this.response]);
|
||||
let fileReader = new FileReader();
|
||||
fileReader.onload = function() {
|
||||
|
@ -52,7 +57,8 @@ class FileReceiver extends EventEmitter {
|
|||
true,
|
||||
['encrypt', 'decrypt']
|
||||
)
|
||||
]).then(([fdata, key]) => {
|
||||
])
|
||||
.then(([fdata, key]) => {
|
||||
let salt = this.salt;
|
||||
return Promise.all([
|
||||
window.crypto.subtle.decrypt(
|
||||
|
|
Loading…
Reference in a new issue