From 8e4b1a12e25e4b4a07bb44cdc53a1ddbe27dd3f5 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 1 Jun 2023 17:08:41 +0000 Subject: [PATCH 1/3] send `file` over arguments --- packages/app/src/cores/remoteStorage/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/app/src/cores/remoteStorage/index.js b/packages/app/src/cores/remoteStorage/index.js index 967dbc30..d6e23923 100755 --- a/packages/app/src/cores/remoteStorage/index.js +++ b/packages/app/src/cores/remoteStorage/index.js @@ -207,7 +207,7 @@ export default class RemoteStorage extends Core { console.error("[Uploader] Error", message) if (typeof onError === "function") { - onError(message) + onError(file, message) } reject(message) @@ -217,7 +217,7 @@ export default class RemoteStorage extends Core { //console.debug(`[Uploader] Progress: ${percentProgress}%`) if (typeof onProgress === "function") { - onProgress(percentProgress) + onProgress(file, percentProgress) } }) @@ -225,7 +225,7 @@ export default class RemoteStorage extends Core { console.debug("[Uploader] Finish", data) if (typeof onFinish === "function") { - onFinish(data) + onFinish(file, data) } resolve(data) From f8cd98d37235864e50d859a22f535f7a6a556b76 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 1 Jun 2023 17:09:49 +0000 Subject: [PATCH 2/3] added envents props --- .../app/src/components/UploadButton/index.jsx | 46 +++++++++++++++---- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/packages/app/src/components/UploadButton/index.jsx b/packages/app/src/components/UploadButton/index.jsx index b7091a62..3e57908b 100755 --- a/packages/app/src/components/UploadButton/index.jsx +++ b/packages/app/src/components/UploadButton/index.jsx @@ -6,16 +6,48 @@ import { Icons } from "components/Icons" export default (props) => { const [uploading, setUploading] = React.useState(false) + const handleOnStart = (file_uid, file) => { + if (typeof props.onStart === "function") { + props.onStart(file_uid, file) + } + } + + const handleOnProgress = (file_uid, progress) => { + if (typeof props.onProgress === "function") { + props.onProgress(file_uid, progress) + } + } + + const handleOnError = (file_uid, error) => { + if (typeof props.onError === "function") { + props.onError(file_uid, error) + } + } + + const handleOnSuccess = (file_uid, response) => { + if (typeof props.onSuccess === "function") { + props.onSuccess(file_uid, response) + } + } + const handleUpload = async (req) => { setUploading(true) - const response = await app.cores.remoteStorage.uploadFile(req.file).catch((err) => { + handleOnStart(req.file.uid, req.file) + + const response = await app.cores.remoteStorage.uploadFile(req.file, { + onProgress: (file, progress) => { + return handleOnProgress(file.uid, progress) + } + }).catch((err) => { app.notification.new({ - message: "Could not upload file", - description: err.message + title: "Could not upload file", + description: err }, { type: "error" }) + + return handleOnError(req.file.uid, err) }) if (typeof props.ctx?.onUpdateItem === "function") { @@ -23,14 +55,12 @@ export default (props) => { } if (typeof props.onUploadDone === "function") { - if (props.multiple) { - await props.onUploadDone(response) - } else { - await props.onUploadDone(response) - } + await props.onUploadDone(response) } setUploading(false) + + return handleOnSuccess(req.file.uid, response) } return Date: Thu, 1 Jun 2023 17:10:11 +0000 Subject: [PATCH 3/3] use progress bar to show uploads stus --- .../components/TracksUploads/index.jsx | 13 ++++++ .../components/TracksUploads/index.less | 45 ++++++++++++++++++- .../app/src/pages/music/creator/index.jsx | 16 ++++++- 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/packages/app/src/pages/music/creator/components/TracksUploads/index.jsx b/packages/app/src/pages/music/creator/components/TracksUploads/index.jsx index 79aeee6a..8251a08d 100644 --- a/packages/app/src/pages/music/creator/components/TracksUploads/index.jsx +++ b/packages/app/src/pages/music/creator/components/TracksUploads/index.jsx @@ -207,6 +207,19 @@ const FileListItem = (props) => { /> } +
+ +
+
{ + const trackList = this.state.trackList + + const track = trackList.find((track) => track.uid === file.uid) + + if (track) { + track.progress = progress + + this.setState({ + trackList + }) + } + } + handleUploadTrack = async (req) => { const response = await app.cores.remoteStorage.uploadFile(req.file, { - timeout: 2000 + onProgress: this.handleFileProgress }).catch((error) => { console.error(error) antd.message.error(error)