revert(pwa): fallback to autoUpdate

This commit is contained in:
Corentin Thomasset 2023-03-01 23:35:17 +01:00
parent 400654b6b1
commit ad202bd372
No known key found for this signature in database
GPG key ID: DBD997E935996158
5 changed files with 2 additions and 89 deletions

View file

@ -5,7 +5,6 @@ import { darkTheme, NGlobalStyle, NMessageProvider, NNotificationProvider } from
import { darkThemeOverrides, lightThemeOverrides } from './themes';
import { layouts } from './layouts';
import { useStyleStore } from './stores/style.store';
import ReloadPrompt from './components/ReloadPrompt';
const route = useRoute();
const layout = computed(() => route?.meta?.layout ?? layouts.base);
@ -20,7 +19,6 @@ const themeOverrides = computed(() => (styleStore.isDarkTheme ? darkThemeOverrid
<n-global-style />
<n-message-provider placement="bottom">
<n-notification-provider placement="bottom-right">
<reload-prompt />
<component :is="layout">
<router-view />
</component>

View file

@ -1,52 +0,0 @@
/* eslint-disable vue/one-component-per-file */
import { useRegisterSW } from 'virtual:pwa-register/vue';
import { useNotification, type NotificationReactive } from 'naive-ui';
import { defineComponent } from 'vue';
import { whenever } from '@vueuse/core';
export default defineComponent({
setup() {
const notificationBuilder = useNotification();
const { needRefresh, offlineReady, updateServiceWorker } = useRegisterSW();
let notification: NotificationReactive | null = null;
const onUpdateClicked = () => {
if (notification) {
notification.action = () => (
<n-button loading type="primary" secondary>
Reloading
</n-button>
);
}
updateServiceWorker();
};
whenever(
needRefresh,
() => {
notification = notificationBuilder.create({
title: 'A new version is out!',
content: 'Update to get the latest version of it-tools',
closable: true,
onClose: () => {
needRefresh.value = false;
return true;
},
action: () => (
<n-button onClick={onUpdateClicked} type="primary" secondary>
Reload
</n-button>
),
});
},
{ immediate: true },
);
whenever(offlineReady, () => notification?.destroy(), { immediate: true });
return () => '';
},
});