diff --git a/ui/src/views/version/swRegistration.ts b/ui/src/views/version/swRegistration.ts index 00a6c16..6513792 100644 --- a/ui/src/views/version/swRegistration.ts +++ b/ui/src/views/version/swRegistration.ts @@ -73,15 +73,16 @@ export const registerServiceWorker = () => { // skipWaiting: true (workbox config) → controllerchange → autoUpdate reload. if ('serviceWorker' in navigator) { navigator.serviceWorker.ready.then((registration) => { + // ready'den önce updatefound zaten tetiklendiyse (race condition) + if (registration.installing && navigator.serviceWorker.controller) { + showUpdateOverlay() + } + registration.addEventListener('updatefound', () => { - const newWorker = registration.installing - if (!newWorker) return - newWorker.addEventListener('statechange', () => { - // Yeni SW kuruldu, aktivasyon aşamasına geçiyor - if (newWorker.state === 'installed' && navigator.serviceWorker.controller) { - showUpdateOverlay() - } - }) + // Güncelleme başlar başlamaz overlay'i göster + if (navigator.serviceWorker.controller) { + showUpdateOverlay() + } }) }) }