implemented multi file upload

This commit was merged in pull request #137.
This commit is contained in:
victorAnumudu
2023-06-05 02:48:22 +01:00
parent 1a0f97030f
commit 119f48642d
+42 -45
View File
@@ -96,57 +96,54 @@ function ActiveJobs(props) {
// FUNCTION TO SEND FILES // FUNCTION TO SEND FILES
const sendFile = async () => { const sendFile = async () => {
setRequestStatus({loading: true, status: false, message: ''}) setRequestStatus({loading: true, status: false, message: ''})
if(!filesToSend.length){ // checks if file to send is empty if(!filesToSend.length){ // checks if file to send is empty
setRequestStatus({loading: false, status: false, message: 'No File(s) selected'}) setRequestStatus({loading: false, status: false, message: 'No File(s) selected'})
return setTimeout(()=>{ return setTimeout(()=>{
setRequestStatus({loading: false, status: false, message: ''}) setRequestStatus({loading: false, status: false, message: ''})
}, 5000) }, 5000)
} }
// let reqData = new FormData()
// for(let files of filesToSend){ for(let i=0; i<=filesToSend.length-1; i++){ // Loops through files to send array and trigger upload API call
// reqData.append(files.name, files)
// }
// let reqData={file_size: filesToSend[0].size, file_type: 'image/png', file_data: filesToSend[0], msg_type: 'FILE', contract:props.details.contract}
// for(let files of filesToSend){ const fileToBase64 = async () =>{ // Converts file data to base64 string
// reqData[files.name] = files try {
// } const base64String = await convertFileToBase64(filesToSend[i]);
return base64String;
} catch (error) {
return false;
}
}
const fileToBase64 = async () =>{ // if(await !fileToBase64()){
try { // return
const base64String = await convertFileToBase64(filesToSend[0]); // }
return base64String;
} catch (error) {
return false;
}
}
if(await !fileToBase64()){ let reqData={file_name: filesToSend[i].name, file_size: filesToSend[i].size, file_type: 'image/png', file_data: await fileToBase64(), msg_type: 'FILE', contract:props.details.contract}
return
}
let reqData={file_name: filesToSend[0].name, file_size: filesToSend[0].size, file_type: 'image/png', file_data: await fileToBase64(), msg_type: 'FILE', contract:props.details.contract} ApiCall.sendFiles(reqData).then((res)=>{
// if(res.status != 200 || res.data.internal_return < 0){
console.log(reqData) // setRequestStatus({loading: false, status: false, message: 'Files(s) could not be sent, try again later'})
ApiCall.sendFiles(reqData).then((res)=>{ // return
if(res.status != 200 || res.data.internal_return < 0){ // }
setRequestStatus({loading: false, status: false, message: 'Files(s) could not be sent, try again later'}) // setRequestStatus({loading: false, status: true, message: 'File(s) Uploaded Successfully'})
return // props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
} // setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
setRequestStatus({loading: false, status: true, message: 'File(s) Uploaded Successfully'}) }).catch(error => {
props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD // setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'})
setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY }).finally(()=>{
}).catch(error => { if(i==filesToSend.length-1){
setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'}) setRequestStatus({loading: false, status: true, message: 'File(s) Uploaded Successfully'})
}).finally(()=>{ setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
setTimeout(()=>{ props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
setRequestStatus({loading: false, status: false, message: ''}) setTimeout(()=>{
}, 5000) setRequestStatus({loading: false, status: false, message: ''})
}) }, 5000)
} }
})
}
}
return ( return (
<Layout> <Layout>