From b74e7a32aa7a0c158632149b5b35dac775e0b9fc Mon Sep 17 00:00:00 2001
From: Florent Poittevin <florent.poittevin@unige.ch>
Date: Fri, 25 Oct 2019 15:05:54 +0200
Subject: [PATCH] refacto: change method to self dismiss snackbar

---
 .../shared-snackbar.presentational.html        |  2 +-
 .../shared-snackbar.presentational.ts          | 18 +++++++++++-------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.html b/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.html
index e821c3582..cdfbf821a 100644
--- a/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.html
+++ b/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.html
@@ -21,7 +21,7 @@
 </div>
 <button mat-icon-button
         matSuffix
-        (click)="close()"
+        (click)="close($event)"
 >
   <mat-icon class="close-icon">close</mat-icon>
 </button>
diff --git a/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.ts b/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.ts
index 523da8d9a..c3405f081 100644
--- a/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.ts
+++ b/src/app/shared/components/presentationals/shared-snackbar/shared-snackbar.presentational.ts
@@ -1,13 +1,16 @@
 import {
   ChangeDetectionStrategy,
   Component,
+  Host,
   Inject,
 } from "@angular/core";
-import {MAT_SNACK_BAR_DATA} from "@angular/material/snack-bar";
+import {
+  MAT_SNACK_BAR_DATA,
+  MatSnackBarRef,
+} from "@angular/material/snack-bar";
 import {
   AbstractSnackbarPresentational,
   isNullOrUndefined,
-  NotificationService,
   NotificationTypeEnum,
   SnackbarData,
 } from "solidify-frontend";
@@ -23,14 +26,11 @@ export class SharedSnackbarPresentational extends AbstractSnackbarPresentational
     return NotificationTypeEnum;
   }
 
-  constructor(@Inject(MAT_SNACK_BAR_DATA) public data: SharedSnackbarOption, private snackbar: NotificationService) {
+  constructor(@Host() public snackbarRef: MatSnackBarRef<SharedSnackbarPresentational>,
+              @Inject(MAT_SNACK_BAR_DATA) public data: SharedSnackbarOption) {
     super();
   }
 
-  close(): void {
-    this.snackbar.dismiss();
-  }
-
   getIcon(): string | undefined {
     if (!isNullOrUndefined(this.data.icon)) {
       return this.data.icon;
@@ -49,6 +49,10 @@ export class SharedSnackbarPresentational extends AbstractSnackbarPresentational
 
     return undefined;
   }
+
+  close($event: MouseEvent): void {
+    this.snackbarRef.dismiss();
+  }
 }
 
 export interface SharedSnackbarOption extends SnackbarData {
-- 
GitLab