diff --git a/src/core.js b/src/core.js index 39bbfc2..cf39a3f 100644 --- a/src/core.js +++ b/src/core.js @@ -746,6 +746,10 @@ const meToast = { } return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { if (!resolved) { resolved = true; clearTimeout(safetyTimeout); resolve(val); } }; + const safetyTimeout = setTimeout(() => safeResolve(false), 10000); + const t = this._emit({ ...opts, type: opts.type || 'warning', @@ -764,14 +768,14 @@ const meToast = { if (confirmBtn) { confirmBtn.addEventListener('click', () => { t.close(); - resolve(true); + safeResolve(true); }); } if (cancelBtn) { cancelBtn.addEventListener('click', () => { t.close(); - resolve(false); + safeResolve(false); }); } }, 0); @@ -791,6 +795,10 @@ const meToast = { } return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { if (!resolved) { resolved = true; clearTimeout(safetyTimeout); resolve(val); } }; + const safetyTimeout = setTimeout(() => safeResolve(null), 10000); + const t = this._emit({ ...opts, type: opts.type || 'info', @@ -813,7 +821,7 @@ const meToast = { input.addEventListener('keydown', (e) => { if (e.key === 'Enter') { t.close(); - resolve(input.value); + safeResolve(input.value); } }); } @@ -821,14 +829,14 @@ const meToast = { if (submitBtn) { submitBtn.addEventListener('click', () => { t.close(); - resolve(input?.value || null); + safeResolve(input?.value || null); }); } if (cancelBtn) { cancelBtn.addEventListener('click', () => { t.close(); - resolve(null); + safeResolve(null); }); } }, 0);