fix(pwa): Hintergrund-SW-Updates während Update-Suppression unterbinden

Das periodische Intervall nutzt checkForUpdate() und respektiert damit
„Später“ wie Fokus- und Online-Checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-31 14:28:01 +02:00
parent 2b5c5d4a36
commit 48c408302f
+2 -12
View File
@@ -9,7 +9,6 @@ import {
import { isDeployedVersionNewer } from '../services/pwaVersion.js' import { isDeployedVersionNewer } from '../services/pwaVersion.js'
const UPDATE_CHECK_INTERVAL_MS = 15 * 60 * 1000 const UPDATE_CHECK_INTERVAL_MS = 15 * 60 * 1000
const VERSION_CHECK_INTERVAL_MS = 10 * 60 * 1000
const UPDATE_SUPPRESS_KEY = 'pwa_update_suppress_until' const UPDATE_SUPPRESS_KEY = 'pwa_update_suppress_until'
const UPDATE_SUPPRESS_MS = 30_000 const UPDATE_SUPPRESS_MS = 30_000
const UPDATE_DISMISS_SUPPRESS_MS = 15 * 60 * 1000 const UPDATE_DISMISS_SUPPRESS_MS = 15 * 60 * 1000
@@ -53,23 +52,14 @@ function scheduleUpdateChecks(
document.addEventListener('visibilitychange', onVisibilityChange) document.addEventListener('visibilitychange', onVisibilityChange)
window.addEventListener('online', onOnline) window.addEventListener('online', onOnline)
const swIntervalId = window.setInterval(() => { const updateIntervalId = window.setInterval(checkForUpdate, UPDATE_CHECK_INTERVAL_MS)
registration.update().catch(() => {})
}, UPDATE_CHECK_INTERVAL_MS)
const versionIntervalId = window.setInterval(() => {
if (isUpdateSuppressed()) return
void isDeployedVersionNewer().then((outdated) => {
if (outdated && !isUpdateSuppressed()) onOutdated()
})
}, VERSION_CHECK_INTERVAL_MS)
checkForUpdate() checkForUpdate()
return () => { return () => {
document.removeEventListener('visibilitychange', onVisibilityChange) document.removeEventListener('visibilitychange', onVisibilityChange)
window.removeEventListener('online', onOnline) window.removeEventListener('online', onOnline)
window.clearInterval(swIntervalId) window.clearInterval(updateIntervalId)
window.clearInterval(versionIntervalId)
} }
} }