fix(toast): call button handler on cancel (#19793)

fixes #19791
This commit is contained in:
Liam DeBeasi
2019-10-30 14:02:18 -04:00
committed by GitHub
parent 7988720b1c
commit 420aa66392

View File

@ -191,7 +191,7 @@ export class Toast implements ComponentInterface, OverlayInterface {
}
const shouldDismiss = await this.callButtonHandler(button);
if (shouldDismiss) {
return this.dismiss(undefined, button.role);
return this.dismiss(undefined, role);
}
return Promise.resolve();
}
@ -213,6 +213,14 @@ export class Toast implements ComponentInterface, OverlayInterface {
return true;
}
private dispatchCancelHandler = (ev: CustomEvent) => {
const role = ev.detail.role;
if (isCancel(role)) {
const cancelButton = this.getButtons().find(b => b.role === 'cancel');
this.callButtonHandler(cancelButton);
}
}
renderButtons(buttons: ToastButton[], side: 'start' | 'end') {
if (buttons.length === 0) {
return;
@ -265,6 +273,7 @@ export class Toast implements ComponentInterface, OverlayInterface {
...getClassMap(this.cssClass),
'toast-translucent': this.translucent
}}
onIonToastWillDismiss={this.dispatchCancelHandler}
>
<div class={wrapperClass}>
<div class="toast-container">