diff --git a/env.d.ts b/env.d.ts index 23280061..18bdc8fe 100644 --- a/env.d.ts +++ b/env.d.ts @@ -1,38 +1,5 @@ /// /// -/// - -declare module 'virtual:pwa-register/vue' { - // @ts-expect-error ignore when vue is not installed - import type { Ref } from 'vue'; - - export interface RegisterSWOptions { - immediate?: boolean; - onNeedRefresh?: () => void; - onOfflineReady?: () => void; - /** - * Called only if `onRegisteredSW` is not provided. - * - * @deprecated Use `onRegisteredSW` instead. - * @param registration The service worker registration if available. - */ - onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void; - /** - * Called once the service worker is registered (requires version `0.12.8+`). - * - * @param swScriptUrl The service worker script url. - * @param registration The service worker registration if available. - */ - onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void; - onRegisterError?: (error: any) => void; - } - - export function useRegisterSW(options?: RegisterSWOptions): { - needRefresh: Ref; - offlineReady: Ref; - updateServiceWorker: (reloadPage?: boolean) => Promise; - }; -} interface ImportMetaEnv { VITE_PLAUSIBLE_API_HOST: string; diff --git a/src/App.vue b/src/App.vue index 10a6d0ce..98199afb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -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 - diff --git a/src/components/ReloadPrompt.tsx b/src/components/ReloadPrompt.tsx deleted file mode 100644 index 39ced275..00000000 --- a/src/components/ReloadPrompt.tsx +++ /dev/null @@ -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 = () => ( - - Reloading - - ); - } - - 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: () => ( - - Reload - - ), - }); - }, - { immediate: true }, - ); - - whenever(offlineReady, () => notification?.destroy(), { immediate: true }); - - return () => ''; - }, -}); diff --git a/tsconfig.app.json b/tsconfig.app.json index 1a672943..45ddfca0 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -9,6 +9,6 @@ "paths": { "@/*": ["./src/*"] }, - "types": ["naive-ui/volar", "vite-plugin-pwa/client"] + "types": ["naive-ui/volar"] } } diff --git a/vite.config.ts b/vite.config.ts index 7ba86860..c2c4d8d3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -17,7 +17,7 @@ export default defineConfig({ markdown(), svgLoader(), VitePWA({ - registerType: 'prompt', + registerType: 'autoUpdate', strategies: 'generateSW', manifest: { name: 'IT Tools',