minhnt-dev: only ssr

This commit is contained in:
MoreStrive
2024-06-21 09:56:34 +07:00
parent 229155b24a
commit 6a275c354e
18 changed files with 84 additions and 1003 deletions
+29 -54
View File
@@ -5,8 +5,6 @@
*/
<script setup lang="ts">
import _cloneDeep from 'lodash/cloneDeep';
import DynamicTemplate from "~/components/dynamic-page/page/templates/index.vue";
import DynamicSection from "~/components/dynamic-page/page-section/templates/index.vue";
@@ -22,64 +20,42 @@ const store = reactive({
article: useArticleStore(),
});
(async () => {
try {
await store.article.getArticleBySlug(route.params.slug);
const loadPage = async () => {
const promises = [];
promises.push(store.article.getArticleBySlug(route.params.slug));
// useHead({
// title: currentArticle.value?.title.replace(/<\/?[^>]+(>|$)/g, ""),
// })
useSeoMeta({
title: currentArticle.value?.title.replace(/<\/?[^>]+(>|$)/g, ""),
ogTitle: currentArticle.value?.title.replace(/<\/?[^>]+(>|$)/g, ""),
description: currentArticle.value?.intro.replace(/<\/?[^>]+(>|$)/g, ""),
ogDescription: currentArticle.value?.intro.replace(/<\/?[^>]+(>|$)/g, ""),
ogImage: currentArticle.value?.thumbnail,
})
} catch (error) {
console.error("Error fetching data:", error);
}
})();
const loadPage = async (contentType: string | number) => {
await store.dynamicPage.fetchPageByCode(contentType);
store.dynamicPage.setSectionPublished();
store.dynamicPage.setComponentPublished();
}
watch(currentArticle, async () => {
let isContentType : string = '';
let isContentType = '';
switch (currentArticle.value?.contentType) {
case 1:
isContentType = 'trang-chi-tiet-bai-viet-general'
break;
isContentType = 'trang-chi-tiet-bai-viet-general';
break;
case 2:
isContentType = 'trang-chi-tiet-bai-viet-image'
break;
isContentType = 'trang-chi-tiet-bai-viet-image';
break;
case 3:
isContentType = 'trang-chi-tiet-podcast'
break;
isContentType = 'trang-chi-tiet-podcast';
break;
case 4:
isContentType = 'trang-chi-tiet-bai-viet-video'
break;
isContentType = 'trang-chi-tiet-bai-viet-video';
break;
case 5:
if (currentArticle.value?.layoutType === 4) {
isContentType = 'trang-chi-tiet-bai-viet-emagazine'
break;
}
if (currentArticle.value?.layoutType === 3) {
isContentType = 'trang-chi-tiet-bai-viet-infographics'
break;
}
default:
isContentType = 'trang-chi-tiet-bai-viet-general'
if (currentArticle.value?.layoutType === 4) {
isContentType = 'trang-chi-tiet-bai-viet-emagazine';
break;
}
if (currentArticle.value?.layoutType === 3) {
isContentType = 'trang-chi-tiet-bai-viet-infographics';
break;
}
default:
isContentType = 'trang-chi-tiet-bai-viet-general';
break;
}
await loadPage(isContentType);
}, { deep: true })
promises.push(store.dynamicPage.fetchPageByCode(isContentType));
await Promise.all(promises);
};
await useAsyncData('detail-article', () => loadPage());
useSeoMeta({
title: () => currentArticle.value?.title?.replace(/<[^>]+>/g, ''),
@@ -87,9 +63,8 @@ useSeoMeta({
ogTitle: () => currentArticle.value?.title,
ogImage: () => currentArticle.value?.thumbnail,
ogDescription: () => currentArticle.value?.intro,
twitterCard: 'summary_large_image',
twitterCard: () => 'summary_large_image',
})
</script>
<template>
@@ -106,4 +81,4 @@ useSeoMeta({
</template>
</DynamicTemplate>
</main>
</template>
</template>