fix: SW-Version dynamisch per Build-Time, sofort Reload bei neuem Deploy
This commit is contained in:
@@ -56,13 +56,18 @@ window.__safeReloadIfNewBuild = function () {
|
||||
return true;
|
||||
};
|
||||
|
||||
// Beim Start prüfen (kein sofortiger Reload – Seite lädt gerade erst)
|
||||
checkBuild();
|
||||
// Beim Start prüfen – nach 3s sofort reloaden wenn neue Version (App hat Zeit zu rendern)
|
||||
checkBuild().then(() => {
|
||||
if (window.__newBuildAvailable && !isUserTyping() && !hasUnsavedInput()) {
|
||||
setTimeout(() => {
|
||||
if (!isUserTyping() && !hasUnsavedInput()) window.location.reload();
|
||||
}, 3000);
|
||||
}
|
||||
});
|
||||
// Im Hintergrund alle 60s
|
||||
setInterval(() => checkBuild(), 60_000);
|
||||
|
||||
// App kommt in den Vordergrund → prüfen und bei Bedarf sofort laden
|
||||
// (PWA vom Homescreen öffnen / aus dem Hintergrund holen)
|
||||
document.addEventListener('visibilitychange', () => {
|
||||
if (document.visibilityState === 'visible') {
|
||||
checkBuild({ reloadNow: true });
|
||||
@@ -72,7 +77,11 @@ document.addEventListener('visibilitychange', () => {
|
||||
// ── Service Worker ────────────────────────────────────────────────────────────
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.addEventListener('message', (e) => {
|
||||
if (e.data?.type === 'SW_ACTIVATED') window.__newBuildAvailable = true;
|
||||
// SW hat neue Version aktiviert → sofort reloaden
|
||||
if (e.data?.type === 'SW_ACTIVATED') {
|
||||
window.__newBuildAvailable = true;
|
||||
if (!isUserTyping() && !hasUnsavedInput()) window.location.reload();
|
||||
}
|
||||
});
|
||||
|
||||
navigator.serviceWorker.register('/sw.js').then(reg => {
|
||||
|
||||
Reference in New Issue
Block a user