From 7154efb913b2d8eee258358f66a615ca641e2505 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 26 Aug 2024 13:09:18 +0200
Subject: [PATCH] OZG-6311 clear collaboration request result (workaround until
 loading is implemented)

---
 .../src/lib/organisations-einheit.service.spec.ts    |  8 ++++++++
 .../src/lib/organisations-einheit.service.ts         |  4 ++++
 ...laboration-in-vorgang-container.component.spec.ts |  8 ++++++++
 .../collaboration-in-vorgang-container.component.ts  |  8 ++++++--
 .../src/lib/resource/resource-search.service.spec.ts | 12 ++++++++++++
 .../src/lib/resource/resource-search.service.ts      |  4 ++++
 6 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts
index 2099588d49..f264006658 100644
--- a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts
+++ b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.spec.ts
@@ -99,4 +99,12 @@ describe('OrganisationsEinheitService', () => {
       expect(searchService.selectResult).toHaveBeenCalledWith(organisationsEinheitResource);
     });
   });
+
+  describe('clear selected result', () => {
+    it('should call service', () => {
+      service.clearSelectedResult();
+
+      expect(searchService.clearSelectedResult).toHaveBeenCalled();
+    });
+  });
 });
diff --git a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts
index f4fadaf317..495c115446 100644
--- a/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts
+++ b/alfa-client/libs/collaboration-shared/src/lib/organisations-einheit.service.ts
@@ -30,4 +30,8 @@ export class OrganisationsEinheitService {
   public selectSearchResult(organisationsEinheitResource: OrganisationsEinheitResource): void {
     this.searchService.selectResult(organisationsEinheitResource);
   }
+
+  public clearSelectedResult(): void {
+    this.searchService.clearSelectedResult();
+  }
 }
diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts
index 85649462f3..a5e6e9e22d 100644
--- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts
+++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.spec.ts
@@ -155,4 +155,12 @@ describe('CollaborationInVorgangContainerComponent', () => {
       expect(service.hideRequestForm).toHaveBeenCalled();
     });
   });
+
+  describe('ngOnDestroy', () => {
+    it('should call service to clear selected result', () => {
+      component.ngOnDestroy();
+
+      expect(organisationsEinheitSearchService.clearSelectedResult).toHaveBeenCalled();
+    });
+  });
 });
diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts
index 63127377e2..50c5d04bcf 100644
--- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts
+++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.ts
@@ -1,6 +1,6 @@
 import { OrganisationsEinheitResource } from '@alfa-client/collaboration-shared';
 import { StateResource } from '@alfa-client/tech-shared';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnDestroy, OnInit } from '@angular/core';
 import { CollaborationListResource } from 'libs/collaboration-shared/src/lib/collaboration.model';
 import { CollaborationService } from 'libs/collaboration-shared/src/lib/collaboration.service';
 import { OrganisationsEinheitResourceSearchService } from 'libs/collaboration-shared/src/lib/organisations-einheit-resource-search.service';
@@ -10,7 +10,7 @@ import { Observable } from 'rxjs';
   selector: 'alfa-collaboration-in-vorgang-container',
   templateUrl: './collaboration-in-vorgang-container.component.html',
 })
-export class CollaborationInVorgangContainerComponent implements OnInit {
+export class CollaborationInVorgangContainerComponent implements OnInit, OnDestroy {
   public collaborationStateListResource$: Observable<StateResource<CollaborationListResource>>;
   public isRequestFormVisible$: Observable<boolean>;
   public selectedOrganisationsEinheit$: Observable<OrganisationsEinheitResource>;
@@ -33,4 +33,8 @@ export class CollaborationInVorgangContainerComponent implements OnInit {
   public hideRequestForm(): void {
     this.service.hideRequestForm();
   }
+
+  ngOnDestroy(): void {
+    this.searchService.clearSelectedResult();
+  }
 }
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts
index acbd45df65..1c1d30cbcd 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.spec.ts
@@ -191,4 +191,16 @@ describe('ResourceSearchService', () => {
       expect(service.selectedResource.value).toEqual(dummyResource);
     });
   });
+
+  describe('clear select result', () => {
+    const dummyResource: Resource = createDummyResource();
+
+    it('should update selected resource to null', () => {
+      service.selectedResource.next(dummyResource);
+
+      service.clearSelectedResult();
+
+      expect(service.selectedResource.value).toBeNull();
+    });
+  });
 });
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts
index d23b4be986..f8e52663e1 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource-search.service.ts
@@ -98,4 +98,8 @@ export class ResourceSearchService<
   public selectResult(selected: I): void {
     this.selectedResource.next(selected);
   }
+
+  public clearSelectedResult(): void {
+    this.selectedResource.next(null);
+  }
 }
-- 
GitLab