From b9780b78d3858bea78cf7ca545fd562b797745f1 Mon Sep 17 00:00:00 2001 From: Sofia Kurilova Date: Thu, 27 Jun 2024 13:21:00 +0000 Subject: [PATCH] Close form after selected risk profile was deleted --- .../risk-assessment.component.html | 2 +- .../risk-assessment.component.spec.ts | 17 ++++++++++++++++- .../risk-assessment.component.ts | 14 +++++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html index 05818f031..89da5007f 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html @@ -46,7 +46,7 @@

Saved profiles

*ngFor="let profile of vm.profiles; let i = index" [profile]="profile" class="profile-item-{{ i }}" - (deleteButtonClicked)="deleteProfile($event, i)" + (deleteButtonClicked)="deleteProfile($event, i, vm.selectedProfile)" (profileClicked)="openForm($event)"> diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts index b88b07a42..728543965 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts @@ -166,7 +166,7 @@ describe('RiskAssessmentComponent', () => { } as MatDialogRef); tick(); - component.deleteProfile(PROFILE_MOCK.name, 0); + component.deleteProfile(PROFILE_MOCK.name, 0, null); tick(); expect(openSpy).toHaveBeenCalledWith(SimpleDialogComponent, { @@ -183,6 +183,21 @@ describe('RiskAssessmentComponent', () => { openSpy.calls.reset(); })); + + it('should close form and set selected profile to null if selected profile was deleted', fakeAsync(() => { + spyOn(component.dialog, 'open').and.returnValue({ + afterClosed: () => of(true), + } as MatDialogRef); + tick(); + + component.deleteProfile(PROFILE_MOCK.name, 0, PROFILE_MOCK); + tick(); + + expect( + mockRiskAssessmentStore.updateSelectedProfile + ).toHaveBeenCalledWith(null); + expect(component.isOpenProfileForm).toBeFalse(); + })); }); describe('#openForm', () => { diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts index 0fae76a64..574982445 100644 --- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts +++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts @@ -62,7 +62,11 @@ export class RiskAssessmentComponent implements OnInit, OnDestroy { this.focusManagerService.focusFirstElementInContainer(); } - deleteProfile(profileName: string, index: number): void { + deleteProfile( + profileName: string, + index: number, + selectedProfile: Profile | null + ): void { const dialogRef = this.dialog.open(SimpleDialogComponent, { ariaLabel: 'Delete risk profile', data: { @@ -81,6 +85,7 @@ export class RiskAssessmentComponent implements OnInit, OnDestroy { .subscribe(deleteProfile => { if (deleteProfile) { this.store.deleteProfile(profileName); + this.closeFormAfterDelete(profileName, selectedProfile); this.setFocus(index); } }); @@ -100,6 +105,13 @@ export class RiskAssessmentComponent implements OnInit, OnDestroy { } } + private closeFormAfterDelete(name: string, selectedProfile: Profile | null) { + if (selectedProfile?.name === name) { + this.isOpenProfileForm = false; + this.store.updateSelectedProfile(null); + } + } + private saveProfile(profile: Profile) { this.store.saveProfile(profile); this.isOpenProfileForm = false;