import {Injectable} from '@angular/core'; import {MatSnackBar, MatSnackBarRef} from '@angular/material/snack-bar'; @Injectable() export class SnackBarService { constructor(private snackbar: MatSnackBar) { } private show(message: string, action?: string, duration?: number, panelClasses?: string[]): MatSnackBarRef { const config = {}; if (duration) { config['duration'] = duration; } if (action) { if (panelClasses) { panelClasses.push('snack-bar-button'); } else { panelClasses = ['snack-bar-button']; } } if (panelClasses) { config['panelClass'] = panelClasses; } return this.snackbar.open(message, action, config); } showSuccess(message: string) { return this.show(message, undefined, 2500, ['custom-snack-bar', 'label-success']); } showError(message: string, duration?: number) { return this.show(message, 'OK', duration, ['custom-snack-bar', 'label-danger']); } }