From 86f3a8bb1f1ef4bd3e4eb9d8eb77f0d1af21126e Mon Sep 17 00:00:00 2001 From: Matheus <20505926+MattSilvaa@users.noreply.github.com> Date: Tue, 2 May 2023 21:25:08 -0700 Subject: [PATCH] MM-22967 : Fixing file upload error feedback from server (#22972) Co-authored-by: Mattermost Build --- webapp/channels/src/actions/file_actions.ts | 14 ++++++++++++++ .../advanced_create_post/advanced_create_post.tsx | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/webapp/channels/src/actions/file_actions.ts b/webapp/channels/src/actions/file_actions.ts index 12b9d0ffed..73c33f35e7 100644 --- a/webapp/channels/src/actions/file_actions.ts +++ b/webapp/channels/src/actions/file_actions.ts @@ -87,6 +87,20 @@ export function uploadFile({file, name, type, rootId, channelId, clientId, onPro ])); onSuccess(response, channelId, rootId); + } else if (xhr.status >= 400 && xhr.readyState === 4) { + const errorResponse = JSON.parse(xhr.response); + const errorMessage = + (errorResponse?.id && errorResponse?.message) ? localizeMessage(errorResponse.id, errorResponse.message) : + localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.'); + + dispatch({ + type: FileTypes.UPLOAD_FILES_FAILURE, + clientIds: [clientId], + channelId, + rootId, + }); + + onError?.(errorMessage, clientId, channelId, rootId); } }; } diff --git a/webapp/channels/src/components/advanced_create_post/advanced_create_post.tsx b/webapp/channels/src/components/advanced_create_post/advanced_create_post.tsx index bf333ccb43..af9cc8a6b0 100644 --- a/webapp/channels/src/components/advanced_create_post/advanced_create_post.tsx +++ b/webapp/channels/src/components/advanced_create_post/advanced_create_post.tsx @@ -998,9 +998,9 @@ class AdvancedCreatePost extends React.PureComponent { }; handleUploadError = (err: string | ServerError, clientId?: string, channelId?: string) => { - let serverError = null; - if (typeof err === 'string' && err.length > 0) { - serverError = new Error(err); + let serverError = err; + if (typeof serverError === 'string') { + serverError = new Error(serverError); } if (!channelId || !clientId) {