38 lines
965 B
TypeScript
38 lines
965 B
TypeScript
|
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']);
|
||
|
}
|
||
|
|
||
|
showError(message: string) {
|
||
|
return this.show(message, 'OK', undefined, ['custom-snack-bar', 'label-danger']);
|
||
|
}
|
||
|
}
|