@@ -153,14 +153,14 @@ function Uploader(props: UploaderProps) {
153153 setAddedFiles ( ( prev ) => prev . filter ( ( file ) => file . id !== id ) )
154154 }
155155
156- function updateDuplicateFileName ( file : File ) {
156+ function getFileName ( file : File ) {
157157 let fileName = file . name
158- const extensionIndex = fileName . lastIndexOf ( '.' )
159- const baseName = fileName . substring ( 0 , extensionIndex )
160158 const fileNameCount = fileNamesRef . current [ fileName ]
161159
162160 if ( fileNameCount ) {
163161 const newCount = fileNameCount + 1
162+ const extensionIndex = fileName . lastIndexOf ( '.' )
163+ const baseName = fileName . substring ( 0 , extensionIndex )
164164 const extension = fileName . substring ( extensionIndex )
165165 fileName = `${ baseName } (${ fileNameCount } )${ extension } `
166166 fileNamesRef . current = { ...fileNamesRef . current , [ file . name ] : newCount }
@@ -174,8 +174,10 @@ function Uploader(props: UploaderProps) {
174174 function uploadFile ( file : File ) {
175175 const formData = new FormData ( )
176176 const controller = new AbortController ( )
177- formData . append ( 'file' , file )
178- const fileName = updateDuplicateFileName ( file )
177+
178+ const fileName = getFileName ( file )
179+ const updatedFile = new File ( [ file ] , fileName , { type : file . type } )
180+ formData . append ( 'file' , updatedFile )
179181 const temporaryFileId = getUUID ( )
180182 const newAddedFile = {
181183 name : fileName ,
@@ -185,15 +187,15 @@ function Uploader(props: UploaderProps) {
185187 }
186188
187189 setAddedFiles ( ( prev ) => [ ...prev , newAddedFile ] )
188- props . handleFileListChange ( 'add' , fileName )
190+ props . onFileUpdate ( 'add' , fileName )
189191
190192 function handleUploadProgress ( progressEvent : AxiosProgressEvent ) {
191193 const percentageConversionRate = 100
192194 if ( progressEvent . total ) {
193195 const loadedPercentage =
194196 ( progressEvent . loaded / progressEvent . total ) *
195197 percentageConversionRate
196- updateProgress ( loadedPercentage , temporaryFileId )
198+ updateProgress ( loadedPercentage , newAddedFile . id )
197199 }
198200 }
199201
@@ -204,15 +206,15 @@ function Uploader(props: UploaderProps) {
204206 signal : controller . signal ,
205207 } )
206208 . then ( ( response ) => {
207- handleSuccessfulUpload ( response . data , temporaryFileId )
209+ handleSuccessfulUpload ( response . data , newAddedFile . id )
208210 } )
209211 . catch ( ( error ) => {
210- props . handleFileListChange ( 'remove' , fileName )
212+ props . onFileUpdate ( 'remove' , fileName )
211213 fileNamesRef . current = {
212214 ...fileNamesRef . current ,
213215 [ fileName ] : fileNamesRef . current [ file . name ] -- ,
214216 }
215- handleFailedUpload ( file . name , temporaryFileId , error . response ?. data )
217+ handleFailedUpload ( file . name , newAddedFile . id , error . response ?. data )
216218 } )
217219 }
218220
@@ -223,7 +225,7 @@ function Uploader(props: UploaderProps) {
223225 ...fileNamesRef . current ,
224226 [ fileName ] : fileNamesRef . current [ fileName ] -- ,
225227 }
226- props . handleFileListChange ( 'remove' , fileName )
228+ props . onFileUpdate ( 'remove' , fileName )
227229 if ( file . loadingProgress === maximumLoadingProgress ) {
228230 const deleteUrl = `${ props . deleteFileEndpoint } ?message-id=${ props . messageId } &file-id=${ file . id } `
229231
@@ -233,7 +235,7 @@ function Uploader(props: UploaderProps) {
233235 return setAddedFiles ( ( prev ) => prev . filter ( ( _ , i ) => i !== index ) )
234236 } )
235237 . catch ( ( ) => {
236- props . handleFileListChange ( 'add' , fileName )
238+ props . onFileUpdate ( 'add' , fileName )
237239 return setErrorMessages ( ( prevMessages ) => [
238240 ...prevMessages ,
239241 `Failed to delete ${ fileName } . Please try again.` ,
0 commit comments