diff --git a/src/composables/useCacheSize.ts b/src/composables/useCacheSize.ts index 00f0d96..153e127 100644 --- a/src/composables/useCacheSize.ts +++ b/src/composables/useCacheSize.ts @@ -75,6 +75,14 @@ export function useCacheSize() { // 清除 sessionStorage sessionStorage.clear(); + // 清除 Service Worker 缓存 + if ("serviceWorker" in navigator) { + const registrations = await navigator.serviceWorker.getRegistrations(); + for (const registration of registrations) { + await registration.unregister(); + } + } + // 清除 Cache API 缓存 if ("caches" in window) { const cacheNames = await caches.keys(); diff --git a/src/main.ts b/src/main.ts index 9f8580b..24549e3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,24 +2,24 @@ import { IonicVue } from "@ionic/vue"; import { createPinia } from "pinia"; import { createApp } from "vue"; import App from "./App.vue"; +import { authClient } from "./auth"; import { i18n } from "./locales"; + import { router } from "./router"; /* Core CSS required for Ionic components to work properly */ import "@ionic/vue/css/core.css"; - /* Basic CSS for apps built with Ionic */ import "@ionic/vue/css/normalize.css"; import "@ionic/vue/css/structure.css"; -import "@ionic/vue/css/typography.css"; +import "@ionic/vue/css/typography.css"; /* Optional CSS utils that can be commented out */ import "@ionic/vue/css/padding.css"; import "@ionic/vue/css/float-elements.css"; import "@ionic/vue/css/text-alignment.css"; import "@ionic/vue/css/text-transformation.css"; import "@ionic/vue/css/flex-utils.css"; -import "@ionic/vue/css/display.css"; /** * Ionic Dark Mode @@ -28,10 +28,11 @@ import "@ionic/vue/css/display.css"; * https://ionicframework.com/docs/theming/dark-mode */ -// import "@ionic/vue/css/palettes/dark.always.css"; -import "@ionic/vue/css/palettes/dark.class.css"; +import "@ionic/vue/css/display.css"; // import "@ionic/vue/css/palettes/dark.system.css"; +// import "@ionic/vue/css/palettes/dark.always.css"; +import "@ionic/vue/css/palettes/dark.class.css"; /* Theme variables */ import "./theme/index.css"; import "./theme/variables.css"; @@ -39,14 +40,18 @@ import "./theme/ionic.css"; useTheme(); -const pinia = createPinia(); +authClient.getSession().then((session) => { + const pinia = createPinia(); + const userStore = useUserStore(pinia); + userStore.setToken(session.data?.session.token || ""); -const app = createApp(App) - .use(IonicVue) - .use(pinia) - .use(router) - .use(i18n); + const app = createApp(App) + .use(IonicVue) + .use(pinia) + .use(router) + .use(i18n); -router.isReady().then(() => { - app.mount("#app"); + router.isReady().then(() => { + app.mount("#app"); + }); }); diff --git a/src/store/user.ts b/src/store/user.ts index 5f600a7..f3cab33 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -1,5 +1,6 @@ import type { UserData, UserProfileData } from "@/api/types"; import { client, safeClient } from "@/api"; +import { authClient } from "@/auth"; interface State { user: UserData | null;