mirror of
https://github.com/dergigi/boris.git
synced 2025-12-26 19:14:52 +01:00
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import React from 'react'
|
|
import ReactDOM from 'react-dom/client'
|
|
import App from './App.tsx'
|
|
import './styles/tailwind.css'
|
|
import './index.css'
|
|
import 'react-loading-skeleton/dist/skeleton.css'
|
|
|
|
// Register Service Worker for PWA functionality
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker
|
|
.register('/sw.js', { type: 'module' })
|
|
.then(registration => {
|
|
console.log('✅ Service Worker registered:', registration.scope)
|
|
|
|
// Check for updates periodically
|
|
setInterval(() => {
|
|
registration.update()
|
|
}, 60 * 60 * 1000) // Check every hour
|
|
|
|
// Handle service worker updates
|
|
registration.addEventListener('updatefound', () => {
|
|
const newWorker = registration.installing
|
|
if (newWorker) {
|
|
newWorker.addEventListener('statechange', () => {
|
|
if (newWorker.state === 'installed' && navigator.serviceWorker.controller) {
|
|
// New service worker available
|
|
console.log('🔄 New version available! Reload to update.')
|
|
|
|
// Optionally show a toast notification
|
|
const updateAvailable = new CustomEvent('sw-update-available')
|
|
window.dispatchEvent(updateAvailable)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
.catch(error => {
|
|
console.error('❌ Service Worker registration failed:', error)
|
|
})
|
|
})
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
<React.StrictMode>
|
|
<App />
|
|
</React.StrictMode>,
|
|
)
|
|
|