// /home/Autopartes/pos/static/js/offline-banner.js // Global offline/online banner controller. // Include this script in any page that has an #offlineBanner element. (function () { 'use strict'; var banner = document.getElementById('offlineBanner'); var bannerText = document.getElementById('offlineBannerText'); if (!banner || !bannerText) return; var dismissTimer = null; function showOffline() { clearTimeout(dismissTimer); banner.className = 'banner banner--error'; banner.style.display = 'flex'; banner.style.animation = 'slideDown 0.35s ease-out forwards'; bannerText.innerHTML = 'Conexion perdida — Intentando reconectar...'; } function showOnline() { clearTimeout(dismissTimer); banner.className = 'banner banner--success'; banner.style.display = 'flex'; banner.style.animation = 'slideDown 0.35s ease-out forwards'; bannerText.innerHTML = 'Conexion restaurada — Sincronizando datos...'; // Auto-dismiss after 3 seconds dismissTimer = setTimeout(function () { banner.style.animation = 'slideUp 0.3s ease-in forwards'; banner.addEventListener('animationend', function onEnd() { banner.style.display = 'none'; banner.removeEventListener('animationend', onEnd); }, { once: true }); }, 3000); } // Show warning immediately if already offline if (!navigator.onLine) { showOffline(); } window.addEventListener('offline', showOffline); window.addEventListener('online', showOnline); })();