2020-08-21 10:44:43 +01:00
|
|
|
import { Injectable } from '@angular/core';
|
2021-06-09 10:01:45 +01:00
|
|
|
import { AnimationController, ModalController, ToastController } from '@ionic/angular';
|
|
|
|
|
import { BadRequestPage } from '../shared/popover/bad-request/bad-request.page';
|
|
|
|
|
import { SuccessMessagePage } from '../shared/popover/success-message/success-message.page';
|
2020-08-21 10:44:43 +01:00
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root'
|
|
|
|
|
})
|
|
|
|
|
export class ToastService {
|
|
|
|
|
|
2021-06-09 10:01:45 +01:00
|
|
|
constructor(
|
|
|
|
|
public toastController: ToastController,
|
|
|
|
|
private animationController: AnimationController,
|
|
|
|
|
private modalController: ModalController,
|
|
|
|
|
) { }
|
2020-08-21 10:44:43 +01:00
|
|
|
|
|
|
|
|
async presentToast(infoMessage: string) {
|
|
|
|
|
const toast = await this.toastController.create({
|
|
|
|
|
message: infoMessage,
|
|
|
|
|
duration: 2000
|
|
|
|
|
});
|
|
|
|
|
toast.present();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-09 10:01:45 +01:00
|
|
|
async successMessage(message?: string) {
|
|
|
|
|
|
|
|
|
|
const enterAnimation = (baseEl: any) => {
|
|
|
|
|
const backdropAnimation = this.animationController.create()
|
|
|
|
|
.addElement(baseEl.querySelector('ion-backdrop')!)
|
|
|
|
|
.fromTo('opacity', '0.01', 'var(--backdrop-opacity)');
|
|
|
|
|
|
|
|
|
|
const wrapperAnimation = this.animationController.create()
|
|
|
|
|
.addElement(baseEl.querySelector('.modal-wrapper')!)
|
|
|
|
|
.keyframes([
|
|
|
|
|
{ offset: 0, opacity: '1', right: '-100%' },
|
|
|
|
|
{ offset: 1, opacity: '1', right: '0px' }
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
return this.animationController.create()
|
|
|
|
|
.addElement(baseEl)
|
|
|
|
|
.easing('ease-out')
|
|
|
|
|
.duration(7000)
|
|
|
|
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const leaveAnimation = (baseEl: any) => {
|
|
|
|
|
return enterAnimation(baseEl).direction('reverse');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const modal = await this.modalController.create({
|
|
|
|
|
enterAnimation,
|
|
|
|
|
leaveAnimation,
|
|
|
|
|
component: SuccessMessagePage,
|
|
|
|
|
componentProps: {
|
|
|
|
|
message: message || 'Processo efetuado' ,
|
|
|
|
|
},
|
|
|
|
|
cssClass: 'notification-modal'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
modal.present()
|
|
|
|
|
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
modal.dismiss()
|
|
|
|
|
},3000)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async badRequest(message?: string) {
|
|
|
|
|
const enterAnimation = (baseEl: any) => {
|
|
|
|
|
const backdropAnimation = this.animationController.create()
|
|
|
|
|
.addElement(baseEl.querySelector('ion-backdrop')!)
|
|
|
|
|
.fromTo('opacity', '0.01', 'var(--backdrop-opacity)');
|
|
|
|
|
|
|
|
|
|
const wrapperAnimation = this.animationController.create()
|
|
|
|
|
.addElement(baseEl.querySelector('.modal-wrapper')!)
|
|
|
|
|
.keyframes([
|
|
|
|
|
{ offset: 0, opacity: '1', right: '-100%' },
|
|
|
|
|
{ offset: 1, opacity: '1', right: '0px' }
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
return this.animationController.create()
|
|
|
|
|
.addElement(baseEl)
|
|
|
|
|
.easing('ease-out')
|
|
|
|
|
.duration(7000)
|
|
|
|
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const leaveAnimation = (baseEl: any) => {
|
|
|
|
|
return enterAnimation(baseEl).direction('reverse');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const modal = await this.modalController.create({
|
|
|
|
|
enterAnimation,
|
|
|
|
|
leaveAnimation,
|
|
|
|
|
component: BadRequestPage,
|
|
|
|
|
componentProps: {
|
|
|
|
|
message: message || 'Processo efetuado' ,
|
|
|
|
|
},
|
|
|
|
|
cssClass: 'notification-modal'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
modal.present()
|
|
|
|
|
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
modal.dismiss()
|
|
|
|
|
},3000)
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-21 10:44:43 +01:00
|
|
|
}
|