feat: add Offline Mode Indicator (Bunker Status)
This commit is contained in:
20
public/sw.js
20
public/sw.js
@@ -43,10 +43,19 @@ self.addEventListener('install', (event) => {
|
||||
});
|
||||
await Promise.all(promises);
|
||||
console.log('✅ PWA: Bunker build finished');
|
||||
|
||||
// Signal to clients that pre-caching is complete
|
||||
broadcast({ type: 'PRECACHE_COMPLETE', version: CACHE_NAME });
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// Helper: Broadcast to all clients
|
||||
async function broadcast(message) {
|
||||
const clients = await self.clients.matchAll();
|
||||
clients.forEach(client => client.postMessage(message));
|
||||
}
|
||||
|
||||
// Activate: Alte Bunker räumen
|
||||
self.addEventListener('activate', (event) => {
|
||||
event.waitUntil(
|
||||
@@ -64,6 +73,17 @@ self.addEventListener('activate', (event) => {
|
||||
self.clients.claim();
|
||||
});
|
||||
|
||||
// Communication: Listen for status checks
|
||||
self.addEventListener('message', (event) => {
|
||||
if (event.data?.type === 'CHECK_BUNKER_STATUS') {
|
||||
event.source.postMessage({
|
||||
type: 'BUNKER_STATUS',
|
||||
isReady: true,
|
||||
version: CACHE_NAME
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('fetch', (event) => {
|
||||
// Nur GET-Requests cachen
|
||||
if (event.request.method !== 'GET') return;
|
||||
|
||||
Reference in New Issue
Block a user