From f8cd98d37235864e50d859a22f535f7a6a556b76 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 1 Jun 2023 17:09:49 +0000 Subject: [PATCH] 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