opt-cc/static/src/app/services/user-interface/snack-bar/snack-bar.service.ts

38 lines
983 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, duration?: number) {
return this.show(message, 'OK', duration, ['custom-snack-bar', 'label-danger']);
}
}