Skip to content

Commit 510d876

Browse files
improve the loading skeleton on blog articles
1 parent f0be9bf commit 510d876

1 file changed

Lines changed: 29 additions & 23 deletions

File tree

app/pages/blog/[...slug].vue

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,15 @@
2121
</template>
2222
<template #fallback>
2323
<div class="animate-pulse">
24-
<div class="h-4 bg-[var(--text-200)] rounded w-3/4 mb-4"></div>
25-
<div class="h-4 bg-[var(--text-200)] rounded w-1/2 mb-4"></div>
26-
<div class="h-4 bg-[var(--text-200)] rounded w-2/3"></div>
24+
<span class="flex items-center gap-1">
25+
<div class="h-2 bg-(--text-200) rounded w-16 mb-4"></div>
26+
<div class="h-1 bg-(--text-200) rounded w-1 mb-4"></div>
27+
<div class="h-2 bg-(--text-200) rounded w-16 mb-4"></div>
28+
</span>
29+
<div class="h-10 bg-(--text-200) rounded w-1/3 mb-4"></div>
30+
<div class="h-2 bg-(--text-200) rounded w-1/2 mb-4" v-for="i in 2"></div>
31+
<div class="h-10 bg-(--text-200) rounded w-1/3 mb-4"></div>
32+
<div class="h-4 bg-(--text-200) rounded w-2/3 mb-2" v-for="i in 10"></div>
2733
</div>
2834
</template>
2935
</Suspense>
@@ -32,29 +38,29 @@
3238
</template>
3339

3440
<script setup lang="ts">
35-
const route = useRoute();
41+
const route = useRoute();
3642
37-
const { data: page } = await useAsyncData(route.path, () => queryCollection("blog").path(route.path).first());
43+
const { data: page } = await useAsyncData(route.path, () => queryCollection("blog").path(route.path).first());
3844
39-
definePageMeta({
40-
layout: "blog",
41-
});
45+
definePageMeta({
46+
layout: "blog",
47+
});
4248
43-
useSeoMeta({
44-
title: page.value?.title,
45-
description: page.value?.description,
46-
});
47-
const isMounted = ref(false);
49+
useSeoMeta({
50+
title: page.value?.title,
51+
description: page.value?.description,
52+
});
53+
const isMounted = ref(false);
4854
49-
// Only show after main content loads
50-
onMounted(() => {
51-
isMounted.value = true;
52-
});
55+
// Only show after main content loads
56+
onMounted(() => {
57+
isMounted.value = true;
58+
});
5359
54-
useHead({
55-
meta: [
56-
{ name: "description", content: page.value?.description },
57-
{ name: "keywords", content: page.value?.meta.tags as string },
58-
],
59-
});
60+
useHead({
61+
meta: [
62+
{ name: "description", content: page.value?.description },
63+
{ name: "keywords", content: page.value?.meta.tags as string },
64+
],
65+
});
6066
</script>

0 commit comments

Comments
 (0)