diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts index c9b80fe49d0d2389e5d647eac7bceb37dd55f7b3..38a32fe726c44d6f7c0152e0caec38bfb8c90791 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts @@ -315,6 +315,17 @@ describe('VorgangDetailBescheidenResultAttachmentsComponent', () => { expect(component.uploadedAttachments).toEqual([]); }); + it('should leave errors in uploaded', () => { + const error: StateResource<BinaryFileResource> = createStateResource( + createBinaryFileResource(), + ); + component.uploadedAttachments = [error]; + + component.deleteFile(uploadedAttachmentStateResource.resource); + + expect(component.uploadedAttachments).toEqual([error]); + }); + it('should not delete attachment from existing', () => { component.uploadedAttachments = [uploadedAttachmentStateResource]; component.existingAttachments = [existingAttachment]; diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts index 084a5361b9ec8460e5cc0f518aeacb535cb47cf9..896a94a92a3a4ca65357269d66de5b83ce1d1730 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts @@ -1,16 +1,16 @@ import { BescheidService, UploadFileInProgress } from '@alfa-client/bescheid-shared'; import { BinaryFileResource } from '@alfa-client/binary-file-shared'; import { - StateResource, containsLoading, getSuccessfullyLoaded, hasStateResourceError, isLoaded, isNotNil, + StateResource, } from '@alfa-client/tech-shared'; import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { getUrl } from '@ngxp/rest'; -import { Observable, Subscription, first } from 'rxjs'; +import { first, Observable, Subscription } from 'rxjs'; import { BescheidenFormService } from '../../bescheiden.formservice'; @Component({ @@ -76,10 +76,11 @@ export class VorgangDetailBescheidenResultAttachmentsComponent implements OnDest deleteFile(file: BinaryFileResource): void { this.formService.deleteFile(file); this.uploadedAttachments = this.uploadedAttachments.filter( - (attachment) => getUrl(attachment.resource) !== getUrl(file), + (attachment: StateResource<BinaryFileResource>) => + !hasStateResourceError(attachment) && getUrl(attachment.resource) !== getUrl(file), ); this.existingAttachments = this.existingAttachments.filter( - (attachment) => getUrl(attachment) !== getUrl(file), + (attachment: BinaryFileResource) => getUrl(attachment) !== getUrl(file), ); } }