E ai, Matheus,
Tudo tranquilo sim e contigo?
Obrigado por receber. Fui simplificar e acabei atrapalhando.
O que eu tenho na realidade é isso:
function updateFile(file_id, data) {
setUploadedFiles(
uploadedFiles.map(file => {
return file_id === file.id ? { ...file, ...data } : file;
})
);
}
function processUpload(file) {
const data = new FormData();
data.append('file', file.file, file.name);
api.post(`projects/${id}/files`, data, {
onUploadProgress: e => {
const progress = parseInt(Math.round((e.loaded * 100) / e.total), 10);
updateFile(file.id, { progress });
},
});
}
function handleUpload(dropFiles) {
const formattedDropFiles = dropFiles.map(dropFile => ({
file: dropFile,
id: uniqueId(),
name: dropFile.name,
readableSize: filesize(dropFile.size),
progress: 0,
uploaded: false,
error: false,
}));
setUploadedFiles(uploadedFiles.concat(formattedDropFiles));
formattedDropFiles.forEach(processUpload);
}
handleUpload recebe um conjunto de arquivos e passa cada uma para processUpload para fazer a chamada a API com cada um. A função updateFile atualiza o arquivo, no caso que coloquei ela deveria atualizar o progress, que está sendo renderizado em uma circular-progressbar.
O que ocorre é que lá dentro do updateFile quando eu vou utilizar o set o uploadedFiles está vazio.
Tem alguma sugestão para o meu caso em específico?