/** * Muestra un toast de aviso cuando se bloquea la navegación * @param {string} message - Mensaje a mostrar * @param {number} duration - Duración en ms (default: 3000) */ export function showBlockedNavigationToast(message = 'Guarda los cambios antes de salir', duration = 3000) { // Eliminar toast existente si hay uno const existingToast = document.querySelector('.blocked-nav-toast'); if (existingToast) { existingToast.remove(); } const toast = document.createElement('div'); toast.className = 'blocked-nav-toast'; toast.innerHTML = /*html*/`
${message}
`; document.body.appendChild(toast); // Animar entrada requestAnimationFrame(() => { toast.classList.add('visible'); }); // Auto-cerrar después del tiempo especificado setTimeout(() => { toast.classList.remove('visible'); toast.classList.add('hiding'); setTimeout(() => { toast.remove(); }, 300); }, duration); return toast; }