1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

fix: 🐛 Funzione di utility per gli Snackbar non funzionante

This commit is contained in:
Maicol Battistini
2021-10-08 11:12:18 +02:00
parent 08ac9b3f16
commit 1275301a91

25
resources/js/utils.js vendored
View File

@@ -19,9 +19,9 @@ export function containsHTML(string_: string): boolean {
/**
* Show a snackbar
*/
export async function showSnackbar(message: string, duration: number, acceptText = 'OK', cancelText = 'Annulla'): Promise<boolean> {
export async function showSnackbar(message: string, duration: number = 5000, acceptText = 'OK', cancelText: ?string): Promise<boolean> {
const snackbar = document.createElement('mwc-snackbar');
snackbar.label = message;
snackbar.labelText = message;
snackbar.timeoutMs = duration;
if (acceptText) {
const button = document.createElement('mwc-button');
@@ -36,15 +36,18 @@ export async function showSnackbar(message: string, duration: number, acceptText
snackbar.append(button);
}
document.body.append(snackbar);
let resolve: (value?: boolean) => void;
const reasonPromise = new Promise()((response) => {
resolve = response;
});
// eslint-disable-next-line unicorn/consistent-function-scoping
const response = (value?: boolean) => value;
// noinspection JSUnusedLocalSymbols
const reasonPromise = new Promise((resolve, reject) => {});
snackbar.addEventListener('MDCSnackbar:closed', (event) => {
resolve(event?.detail?.reason === 'action' ?? false);
response(event?.detail?.reason === 'action' ?? false);
});
snackbar.open();
const acceptOrReject = await reasonPromise;
snackbar.remove();
return acceptOrReject;
snackbar.show();
snackbar.addEventListener('MDCSnackbar:closed', () => {
snackbar.remove();
});
return reasonPromise;
}