Alpha Version of Syncing and Desktop/Anroid PWA
This commit is contained in:
1 parent
8cd8133f9e
commit
a8779d7be1
9 files changed
+1381
-454
No files matched your search
+39
-1
@@ -2,8 +2,46 @@ import React from 'react'
|
||||
import ReactDOM from 'react-dom/client'
|
||||
import NoteApp from './NoteApp.jsx'
|
||||
|
||||
// Hide splash screen after app renders
|
||||
const hideSplash = () => {
|
||||
const splash = document.getElementById('splash');
|
||||
if (splash) {
|
||||
splash.classList.add('hide');
|
||||
setTimeout(() => splash.remove(), 300);
|
||||
}
|
||||
};
|
||||
|
||||
ReactDOM.createRoot(document.getElementById('root')).render(
|
||||
<React.StrictMode>
|
||||
<NoteApp />
|
||||
</React.StrictMode>
|
||||
)
|
||||
);
|
||||
|
||||
// Hide splash after a short delay (let React mount)
|
||||
setTimeout(hideSplash, 200);
|
||||
|
||||
// ── Register Service Worker ──
|
||||
if ('serviceWorker' in navigator) {
|
||||
window.addEventListener('load', async () => {
|
||||
try {
|
||||
const reg = await navigator.serviceWorker.register('./sw.js', { scope: '/' });
|
||||
console.log('[SW] Registered:', reg.scope);
|
||||
|
||||
// Check for updates periodically
|
||||
setInterval(() => reg.update(), 60 * 60 * 1000); // hourly
|
||||
|
||||
// Prompt refresh on new version
|
||||
reg.addEventListener('updatefound', () => {
|
||||
const newWorker = reg.installing;
|
||||
newWorker?.addEventListener('statechange', () => {
|
||||
if (newWorker.state === 'activated' && navigator.serviceWorker.controller) {
|
||||
// New version available — could show a toast here
|
||||
console.log('[SW] New version available');
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch (err) {
|
||||
console.warn('[SW] Registration failed:', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user