2018-06-30 10:29:22 +02:00
|
|
|
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<any> {
|
|
|
|
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']);
|
|
|
|
}
|
|
|
|
|
2018-06-30 17:29:58 +02:00
|
|
|
showError(message: string, duration?: number) {
|
|
|
|
return this.show(message, 'OK', duration, ['custom-snack-bar', 'label-danger']);
|
2018-06-30 10:29:22 +02:00
|
|
|
}
|
|
|
|
}
|