18 lines
643 B
TypeScript
18 lines
643 B
TypeScript
// Ported from legacy henza_pwa/src/Mixins/useRefresh.ts.
|
|
// Auto-applies a waiting service worker as soon as one is available, so the
|
|
// PWA self-updates instead of serving a stale precache indefinitely.
|
|
import { unref, watchEffect } from 'vue'
|
|
import { useRegisterSW } from 'virtual:pwa-register/vue'
|
|
|
|
export function useRefresh() {
|
|
const { offlineReady, needRefresh, updateServiceWorker } = useRegisterSW()
|
|
|
|
const refreshApp = async () => {
|
|
await updateServiceWorker()
|
|
offlineReady.value = false
|
|
needRefresh.value = false
|
|
}
|
|
|
|
watchEffect(async () => (unref(offlineReady) || unref(needRefresh)) && (await refreshApp()))
|
|
}
|