diff --git a/projects/components/src/file-upload/file-upload.service.ts b/projects/components/src/file-upload/file-upload.service.ts index d98664622..65b055e1c 100644 --- a/projects/components/src/file-upload/file-upload.service.ts +++ b/projects/components/src/file-upload/file-upload.service.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpEventType } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpEventType } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { uniqueId } from 'lodash-es'; import { fromEvent, Observable, of, Subscription } from 'rxjs'; @@ -76,7 +76,7 @@ export class FileUploadService { catchError(error => of({ type: FileUploadEventType.Failure, - error: error + error: this.getFileUploadErrorMessage(error) }) ), filter((uploadData): uploadData is FileUploadEvent => uploadData !== undefined) @@ -101,6 +101,14 @@ export class FileUploadService { this.beforeUnloadSubscription = undefined; } } + + private getFileUploadErrorMessage(errorResponse: unknown): string { + return errorResponse instanceof HttpErrorResponse + ? errorResponse.error.error + : errorResponse instanceof Error + ? errorResponse.message + : 'File upload failed due to unknown error'; + } } export declare type FileUploadEvent = FileUploadProgressEvent | FileUploadSuccessEvent | FileUploadFailureEvent;