import type { InitModule } from '~/types' import { registerSW } from 'virtual:pwa-register' import useLogger from '~/composables/useLogger' import { gettext } from '~/init/locale' const logger = useLogger() const { $pgettext } = gettext export const install: InitModule = ({ store }) => { const updateSW = registerSW({ onRegisterError () { logger.error('SW install error') }, onOfflineReady () { logger.info('Funkwhale is being served from cache by a service worker.') }, onRegistered () { logger.info('Service worker has been registered.') }, onNeedRefresh () { store.commit('ui/addMessage', { content: $pgettext('App/Message/Paragraph', 'A new version of the app is available.'), date: new Date(), key: 'refreshApp', displayTime: 0, classActions: 'bottom attached opaque', actions: [ { text: $pgettext('App/Message/Paragraph', 'Update'), class: 'primary', click: () => updateSW() }, { text: $pgettext('App/Message/Paragraph', 'Later'), class: 'basic' } ] }) } }) }