@@ -20,12 +20,14 @@ export const FileUpload = () => {
20
20
21
21
const [ mimeTypeFormDatas , setMimeTypeFormDatas ] = useState < FileTypeOptionsState > ( { } ) ;
22
22
23
- const { isLoading : isTypesLoading } = useGetFileTypes ( ) ; // Ensure types are prefetched to mime lookup works
23
+ // Ensure types are prefetched to mime lookup works
24
+ const { isLoading : isTypesLoading } = useGetFileTypes ( ) ;
24
25
25
26
const uploadFiles = ( ) => {
26
27
files
27
28
. filter ( ( file ) => ! file . done )
28
29
. forEach ( async ( { file, rename, mimeType } , index ) => {
30
+ // Prepare the payload for the post request
29
31
const data : DatasetPostBodyBody = {
30
32
dataset_file : file ,
31
33
dataset_type : mimeType ,
@@ -37,6 +39,7 @@ export const FileUpload = () => {
37
39
} ;
38
40
39
41
try {
42
+ // Can't use the mutate dataset hook here as it doesn't allow a onUploadProgress callback
40
43
const response = await uploadDataset ( data , {
41
44
onUploadProgress : ( progressEvent : ProgressEvent ) => {
42
45
const progress = Math . floor ( ( progressEvent . loaded * 100 ) / progressEvent . total ) ;
@@ -46,6 +49,8 @@ export const FileUpload = () => {
46
49
setFiles ( updatedFiles ) ;
47
50
} ,
48
51
} ) ;
52
+
53
+ // A successful request will have a taskId
49
54
if ( response . task_id ) {
50
55
const updatedFiles = [ ...files ] ;
51
56
updatedFiles [ index ] . taskId = response . task_id ;
@@ -56,13 +61,15 @@ export const FileUpload = () => {
56
61
if ( error . isAxiosError ) {
57
62
const data = error . response ?. data ;
58
63
64
+ // Add the error to the array of files
59
65
const updatedFiles = [ ...files ] ;
60
66
updatedFiles [ index ] . errors . push ( {
61
67
message : data ?. error ?? 'Unknown error' ,
62
68
code : ( error . response ?. status ?? '' ) . toString ( ) ,
63
69
} ) ;
64
70
setFiles ( updatedFiles ) ;
65
71
}
72
+ throw err ;
66
73
}
67
74
} ) ;
68
75
} ;
0 commit comments