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 @@
*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;