diff --git a/package.json b/package.json index 9d424eb..63a09ca 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,6 @@ "windicss": "^3.2.1" }, "dependencies": { - "@fontsource/fanwood-text": "^4.5.0", - "@fontsource/league-gothic": "^4.5.0", - "@fontsource/linden-hill": "^4.5.0", "@fontsource/plus-jakarta-sans": "^4.5.0", "@fontsource/syne": "^4.5.0", "@iconify/json": "1.1.444", diff --git a/src/App.vue b/src/App.vue index a6180aa..3854158 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,27 @@ @@ -16,10 +33,116 @@ min-height: 100vh; font-size: 17px; } + + .loadingText { + animation: fade-in-out 8s ease both; + position: absolute; + } + + @keyframes fade-in-out { + 0%, 100% { + opacity: 0; + } + 50% { + opacity: 1; + } + } - diff --git a/src/main.ts b/src/main.ts index d253bf2..ff8a4e6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,27 @@ import "virtual:windi.css" -import routes from "~pages" -import { createApp } from "vue" -import { createRouter, createWebHistory } from "vue-router" +import originalRoutes from "~pages" +import { createApp, FunctionalComponent } from "vue" +import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router" import App from "./App.vue" import { createHead } from "@vueuse/head" +import { pageComponentLoading } from "./store" + +const routes = originalRoutes.map(route => { + if (typeof route.component !== "function") return route + const load = route.component as (() => Promise) + + return { + ...route, + component: async () => { + pageComponentLoading.value = true + + const value = await load() + pageComponentLoading.value = false + + return value + } + } +}) as RouteRecordRaw[] const router = createRouter({ history: createWebHistory(), diff --git a/src/pages/blog/[slug].vue b/src/pages/blog/[slug].vue index f0c0e68..d9b722f 100644 --- a/src/pages/blog/[slug].vue +++ b/src/pages/blog/[slug].vue @@ -1,5 +1,5 @@