24 lines
766 B
JavaScript
24 lines
766 B
JavaScript
let currentTimeout = null;
|
|
export function showToast(message, isError = false, duration = 2500) {
|
|
let toast = document.getElementById('toast-root');
|
|
if (!toast) {
|
|
toast = document.createElement('div');
|
|
toast.id = 'toast-root';
|
|
document.body.appendChild(toast);
|
|
}
|
|
toast.className = `toast ${isError ? 'error' : ''}`;
|
|
toast.textContent = message;
|
|
requestAnimationFrame(() => {
|
|
toast?.classList.add('show');
|
|
});
|
|
if (currentTimeout)
|
|
window.clearTimeout(currentTimeout);
|
|
currentTimeout = window.setTimeout(() => hideToast(), duration);
|
|
}
|
|
export function hideToast() {
|
|
const toast = document.getElementById('toast-root');
|
|
if (!toast)
|
|
return;
|
|
toast.classList.remove('show');
|
|
}
|