From 5053856f3ecc6de7164d9a67490336fd7b5f19d3 Mon Sep 17 00:00:00 2001 From: Lucas Schoenfelder <les17@inf.ufpr.br> Date: Thu, 6 Aug 2020 09:52:12 -0300 Subject: [PATCH] almost done --- .../UploadPageComponents/DragAndDrop.tsx | 2 +- .../UploadPageComponents/FileToUpload.ts | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Components/UploadPageComponents/DragAndDrop.tsx b/src/Components/UploadPageComponents/DragAndDrop.tsx index 29e00e6e..68dd134b 100644 --- a/src/Components/UploadPageComponents/DragAndDrop.tsx +++ b/src/Components/UploadPageComponents/DragAndDrop.tsx @@ -16,7 +16,7 @@ GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/ -import React, {useState} from 'react' +import React, {useState, useEffect} from 'react' import CloudUploadIcon from '@material-ui/icons/CloudUpload'; import {DottedBox, BlueButton} from './StyledComponents.js'; import FileToUpload from './FileToUpload' diff --git a/src/Components/UploadPageComponents/FileToUpload.ts b/src/Components/UploadPageComponents/FileToUpload.ts index 9812ed81..24f3613b 100644 --- a/src/Components/UploadPageComponents/FileToUpload.ts +++ b/src/Components/UploadPageComponents/FileToUpload.ts @@ -9,9 +9,18 @@ export default class FileToUpload { private _chunkNumber: number; currentChunkStartByte: number; currentChunkFinalByte: number; + uploadFinished: boolean = false; constructor(file: File, name: string, draftID : string) { this.request = new XMLHttpRequest(); + this.request.onreadystatechange = function(ev: Event) { + if(this.readyState === XMLHttpRequest.DONE){ + if (this.getResponseHeader('access-token') != null) { + console.log(this.getResponseHeader('access-token')) + sessionStorage.setItem('@portalmec/accessToken', this.getResponseHeader('access-token')!) + } + } + } this.request.overrideMimeType('application/octet-stream'); this.file = file; @@ -47,6 +56,7 @@ export default class FileToUpload { if(this.currentChunkFinalByte === this.file.size) { alert('Yay, upload completed! Chao!'); + this.uploadFinished = true; return; } else if (remainingBytes < FileToUpload.chunkSize) { // if the remaining chunk is smaller than the chunk size we defined @@ -59,8 +69,8 @@ export default class FileToUpload { this.currentChunkFinalByte = this.currentChunkStartByte + FileToUpload.chunkSize; } - this.uploadFile(); this._chunkNumber = this._chunkNumber + 1 + this.uploadFile(); } //add attributes @@ -74,12 +84,6 @@ export default class FileToUpload { formData.append('_totalSize', String(this.file.size)); formData.append('file', chunk); - this.request.onreadystatechange = (request: XMLHttpRequest, event: Event): any => { - if(request.readyState === XMLHttpRequest.DONE){ - console.log(request.getResponseHeader('access-token')) - sessionStorage.setItem('@portalmec/accessToken', request.getResponseHeader('access-token')!) - } - } this.request.send(formData);// send it now! } -- GitLab