Cambios en esta versión: Fix: Selección visual de modelos ahora se muestra inmediatamente al hacer click en un proveedor Los modelos se muestran seleccionados en el formulario antes de guardar la configuración
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
// Service Worker para PWA con detección de actualizaciones
|
|
// IMPORTANTE: Actualizar esta versión cada vez que se despliegue una nueva versión
|
|
const CACHE_NAME = 'ayutec-v1.2.7';
|
|
const urlsToCache = [
|
|
'/',
|
|
'/index.html'
|
|
];
|
|
|
|
// Instalación del service worker
|
|
self.addEventListener('install', (event) => {
|
|
console.log('Service Worker: Installing version', CACHE_NAME);
|
|
event.waitUntil(
|
|
caches.open(CACHE_NAME)
|
|
.then((cache) => {
|
|
console.log('Service Worker: Caching files');
|
|
return cache.addAll(urlsToCache);
|
|
})
|
|
// NO hacer skipWaiting automáticamente - esperar a que el usuario lo active
|
|
);
|
|
});
|
|
|
|
// Activación del service worker
|
|
self.addEventListener('activate', (event) => {
|
|
console.log('Service Worker: Activating...');
|
|
event.waitUntil(
|
|
caches.keys().then((cacheNames) => {
|
|
return Promise.all(
|
|
cacheNames.map((cacheName) => {
|
|
if (cacheName !== CACHE_NAME) {
|
|
console.log('Service Worker: Deleting old cache:', cacheName);
|
|
return caches.delete(cacheName);
|
|
}
|
|
})
|
|
);
|
|
})
|
|
// NO hacer claim automáticamente - solo cuando el usuario actualice manualmente
|
|
);
|
|
});
|
|
|
|
// Estrategia: Network First, fallback to Cache
|
|
self.addEventListener('fetch', (event) => {
|
|
event.respondWith(
|
|
fetch(event.request)
|
|
.then((response) => {
|
|
// Clone la respuesta
|
|
const responseToCache = response.clone();
|
|
|
|
// Actualizar cache con la nueva respuesta
|
|
caches.open(CACHE_NAME).then((cache) => {
|
|
cache.put(event.request, responseToCache);
|
|
});
|
|
|
|
return response;
|
|
})
|
|
.catch(() => {
|
|
// Si falla la red, usar cache
|
|
return caches.match(event.request);
|
|
})
|
|
);
|
|
});
|
|
|
|
// Mensaje para notificar actualización
|
|
self.addEventListener('message', (event) => {
|
|
if (event.data && event.data.type === 'SKIP_WAITING') {
|
|
self.skipWaiting();
|
|
}
|
|
});
|