Skip to content

Commit 6953907

Browse files
committed
fix(snackbar): catch action button handler error
1 parent 7cc27d5 commit 6953907

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

packages/snackbar/src/lib/handler.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const logger = createLogger(`${__package_name__}`);
1111
/**
1212
* Store the function to close the last snackbar.
1313
*/
14-
let closeLastSnackbar: (() => Promise<void>) | null = null;
14+
let closeLastSnackbar: (() => MaybePromise<void>) | null = null;
1515

1616
/**
1717
* Store the function to unsubscribe the action button handler after close or action button clicked.
@@ -53,7 +53,16 @@ function createSnackbarElement(options: SnackbarOptions): SnackbarElement {
5353
function handleActionButtonClick(closeSnackbar: () => Promise<void>, handler?: SnackbarActionHandler): Promise<void> {
5454
logger.logMethod?.('handleActionButtonClick');
5555

56-
handler?.();
56+
// non-blocking to handler done
57+
(async () => {
58+
try {
59+
await handler!();
60+
}
61+
catch (error) {
62+
logger.error('handleActionButtonClick', 'call_handler_failed', error);
63+
}
64+
})();
65+
5766
return closeSnackbar();
5867
}
5968

0 commit comments

Comments
 (0)